クラスタでKerberosを有効にしても問題ありません。しかし、マップされたユーザーは、JobHistoryサーバー上のログを読み取って表示することはできません。私は、ジョブ履歴サーバのログをチェックし、それは、アクセスエラーを与える:私たちは、ディレクトリはHadoopのグループへのアクセス権を持って見ることができるとmapredは、Hadoopのグループであるようケルベロスを有効にした後、historyserverでログを読み取れません
org.apache.hadoop.security.AccessControlException: Permission denied:user=mapred, access=READ_EXECUTE, inode="/user/history/done_intermediate/prakul":prakul:hadoop:drwxrwx---
、でもログを読み取ることができません。/tmp/logs/folderに与える同様のエラー。これは、リソースマネージャのUIにログが表示されないためです。
私はHadoopのグループは、すべてのマシン上でmapredユーザーが含まれていることを、すべてのマシンをオーバー検証:
[cloudera]# id mapred uid=491(mapred) gid=489(mapred) groups=489(mapred),496(hadoop)
私もmapredユーザーがkinitをし、これらのディレクトリに手動でアクセスしようとするが、場合でも、フォルダにアクセスすることはできませんmapred 770の権限を持つ:
[[email protected] cloudera]# hdfs dfs -ls /tmp/logs/prakul
ls: Permission denied: user=mapred, access=READ_EXECUTE, inode="/tmp/logs/prakul":prakul:hadoop:drwxrwx---
[[email protected] cloudera]# hdfs dfs -ls /tmp/logs/
Found 8 items
drwxrwx--- - xyz hadoop 0 2016-06-14 19:19 /tmp/logs/xyz
drwxrwx--- - abc hadoop 0 2016-06-13 06:06 /tmp/logs/abc
drwxrwx--- - prakul hadoop 0 2016-06-10 04:47 /tmp/logs/prakul
[[email protected] cloudera]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: mapred/[email protected]
Valid starting Expires Service principal
06/27/16 01:07:32 06/27/16 11:07:32 krbtgt/[email protected]
renew until 07/04/16 01:07:32
私が777の許可をディレクトリに与えると、mapredはCLIと同様にログオフUIを読み込んで表示できます。
クロウデラのバグか、グループレベルで完全な権限を持っていてもログにアクセスできないマップド・コンフィグレーション上の問題があることは、誰でも知ることができますか?
Kerberosを有効にしたCloudera 5.7を使用しています。事前
mapdredがhadoopグループになっていることを確認する*:mapredのためのKerberosチケットを取得してから、 'hdfs groups'コマンドを実行してください。そこに「hadoop」が表示されない場合は、* Group Mapping rules *の設定を調べてください。 –
ありがとうSamson、 私はそれを確認し、mapredがどのグループにも属していないことを発見しました。だから私は私のADサーバーにhadoopグループを追加し、そのグループのhdfs、糸とmapredメンバーを作る。その後、私はログを見ることができます。 もう一度おねがいします –