2016-06-27 8 views
0

私はkerberos認証で認証するアプリケーションを持っています。アプリケーションはうまくいきます。しかし、私はoozieワークフローを起動するときに、_HOST値を知りたいと思います。あなたは高可用性セットアップを持っている場合、私はJAVAのプログラムから、またはworkflow.xmlhive-site.xmlの_HOSTの値を確認してください

<property> 
    <name>hive.metastore.kerberos.principal</name> 
    <value>hive/[email protected]</value> 
    <description>The service principal for the metastore thrift server. The 
    special string _HOST will be replaced automatically with the correct 
    hostname.</description> 
</property> 
+0

シェルコマンド "list_principals "を使用して、プリンシパル名を知り、必要なホスト情報を解析することができます。 –

+0

@KSNidhinご返信ありがとうございます。それが十分に単純ならば、詳しく教えてもらえますか? – Prashanth

答えて

0

でoozieアクションのいずれかから_HOSTの値を見つけることができます内の任意の可能な方法は、あなたが事前に知ることができないがあります JDBCまたはMetastoreクライアントが接続するノード。これが "_HOST"プレースホルダの目的です。ライブラリがホストを動的に選択し、それに応じてKerberosを管理できるようにします。ちょうどあなたのhive-site.xmlを更新し、ハードコーディングされたFQDNと「_HOST」を置き換える、

だから、HAを気にしない場合は、実際にハードコードホスト名にしたいです。問題が解決しました。

+0

_HOSTが使用されているかどうかを知る方法はありますか? Oozieまたは他の手段による。そしてはい、私はHAを持っています。 – Prashanth

+1

反復的な大声:接続が開かれる前に**事前** **を知ることができません。カスタムJavaアプリケーションを実行する場合は、Java APIを使用して、接続がポイントする実際のホストを取得することができます。例えば、JDBCドライバーのログに 'INFO 'として表示されます。しかし、その情報をOozieに送ることは複雑です - ''フラグを見てください - そして、アクションは終了する前に情報がOozieに利用できません。あなたの必要が遅すぎるかもしれません。 –

関連する問題