Hadoop の Cloudera の CDH ディストリビューションを使用しており、最近 CDH3 から CDH4 にアップグレードしました。
CDH3 では、 hadoop-policy.xmlに次のユーザー名を追加できました。
security.client.protocol.acl
security.job.submission.protocol.acl
そして実行します:
hadoop dfsadmin -refreshServiceAcl
hadoop mradmin -refreshServiceAcl
そして出来上がり、ユーザーは HDFS にアクセスして MR ジョブを実行できます。
CDH4 にアップグレードしてから最初のユーザーを追加しましたが、何かが変わったようです。
上記と同様に、 hadoop-policy.xmlにユーザーを追加します。HDFS アクセスの場合、次を実行します。
hdfs dfsadmin -refreshServiceAcl
ただし、「security.job.submission.protocol.acl」へのアクセスをユーザーに許可するのに何が適切かわかりません。私が実行すると:
hadoop mradmin -refreshServiceAcl
私は得る:
非推奨: このスクリプトを使用して mapred コマンドを実行することは非推奨です。代わりに mapred コマンドを使用してください。refreshServiceAcl: java.io.IOException: 不明なプロトコル: org.apache.hadoop.security.authorize.RefreshAuthorizationPolicyProtocol
もちろん、ユーザーは次のようになります。
org.apache.hadoop.security.authorize.AuthorizationException: ユーザーのユーザー名 (auth:SIMPLE) は、プロトコル インターフェイス org.apache.hadoop.mapred.JobSubmissionProtocol に対して許可されていません。予期されるクライアントの Kerberos プリンシパルは null です
YARN/MRv2 をインストールしておらず、「/usr/lib/hadoop-0.20-mapreduce/bin/mapred」は「/usr/lib/hadoop-0.20-mapreduce/bin/hadoop」への単なるソフト リンクです。
JobSubmissionProtocol を更新して新しいユーザーを受け入れる方法はありますか?