0

Kerberos を使用する必要がある Java Action で Oozie を使用したいと考えています。HDFS にキータブがあります。ファイルが HDFS にあるとどのように言えますか?

 Configuration conf = new Configuration();
 conf.set("hadoop.security.authentication", "Kerberos");     
 UserGroupInformation.setConfiguration(conf);
 UserGroupInformation.loginUserFromKeytab(kerberosPrincipal, kerberosKeytab);

のようなパスを試してみましたが、同様hdfs://xxxx:8020/tmp/myKeytab.keytabに設定conf.set("fs.defaultFS", "hdfs://server:8020");しましたが、機能しません。

4

1 に答える 1

2

Hadoop 委任トークンは YARN と HDFS でのみ機能し、7 日後に期限切れになります。他のすべてのサービス、特に HBase (ZooKeeper 経由)、HiveServer2 (直接または ZooKeeper 経由)、Hive Metastore (Hive CLI 内) については、直接認証する必要があります。長時間実行されるサービスの場合、委任トークンを更新するために定期的に再認証する必要があります(Slider に依存している場合は、Slider が自動的に行います)。

オプション 1 : Oozie に<credential>アクションに適したものを生成するように依頼します。私はそれがすぐに使えること、および/またはそれがより適切に文書化されていることを願っています.Hiveは魔法のように機能します。HBase ではそうではありません。Hive2を試したことがないので、確信が持てません。

オプション 2 : Oozie に依頼して、カスタム キータブ ファイルを HDFS から(そのキータブへのアクセスを制限するように注意しましたよね???)オプションを使用して Launcher コンテナーの CWDにダウンロードし<file>、資格情報をすべて自分で生成します。 .

Java アクションでは、オプション 2 になります。

于 2016-02-17T20:05:50.870 に答える