2017-09-02 3 views
2

HiveThriftServer2クラスでは、startWithContextmainを呼び出す間の違いは何ですか?HiveThriftServer2にカスタムUDF jarを登録するには?

私は登録する顧客UDF jarを持っています。そのため、リフトサーバーが起動するたびに、これらのすべてが自動構成されます。これを行う方法はありますか?

Hiveコンテキストを使用してUDF jarと関数を登録し、HiveThriftServer2.startWithContextを呼び出してサーバーを起動できますか?

おかげ

+1

のようなものを考えていますCLASSPATHを再起動してサーバを再起動すると、自動的に設定されます –

+0

そして、 'main'を呼び出すと、前のSparkContextがすべて破棄されます –

+0

@ cricket_007 JARをCLASSPATHに追加することで何を意味するのかを明確にすることはできますか?私は** sudo -u $ SVC_USER /usr/lib/spark/sbin/start-thriftserver.sh --jars /opt/lib/custom-udfs.jar**でThrift Serverを起動しようとしましたが、これは登録しませんカスタムudfs.jar。ありがとうございました – seamonkeys

答えて

0

hive.aux.jars.pathあなたが探していると呼ばれ、それはハイブ財産だ、特定のスパークません。

私は個人的にそれを試していないが、しかし、あなたが上にJARを追加した場合、私はこの

./sbin/start-thriftserver.sh \ 
    --hiveconf hive.aux.jars.path=file:///opt/lib/custom-udfs.jar 

参照

+0

あなたの提案を './sbin/ \ beginitriftserver.sh \ --hiveconf hive.aux.jars.path = file:/// opt/lib/custom-udfs.jar'その後、Beeline 'beeline -u jdbc:hive2://を介してThrift Serverに接続します。 localhost:10000/default'となります。しかし、私が 'jarsをリストする'とき、custom-udfs.jarはリソースとしてまだリストされていません。何か案は? – seamonkeys

+0

jarをsparkフォルダにコピーしようとしましたか? –

+1

私は '/ opt/lib /'の代わりに '/ usr/lib/hive/auxlib'ディレクトリにcustom-udfs.jarを置くことでこれを実現しました。あなたが提案したように、それを指す 'hive.aux.jars.path'を指定します。関数を作成する前にビーライン経由で接続したら、 'add jar'を実行する必要はないので、これは動作しています。私の質問は、ハイブのlist jarsコマンドでcustom-udfs.jarが表示されないのはどうしてですか? – seamonkeys

関連する問題