启用kerberos

时间:2016-06-30 05:47:26

标签: hadoop yarn kerberos cloudera bigdata

我在群集上启用了Kerberos,它运行正常。但由于某些问题,mapred用户无法读取和显示JobHistory服务器上的日志。我检查作业历史记录服务器的日志,并将访问错误视为:

org.apache.hadoop.security.AccessControlException: Permission denied:user=mapred, access=READ_EXECUTE, inode="/user/history/done_intermediate/prakul":prakul:hadoop:drwxrwx---

我们可以看到该目录可以访问hadoop组,mapred在hadoop组中,即使这样也无法读取日志。它为/ tmp / logs /文件夹提供了类似的错误,因为资源管理器UI上没有显示任何日志。

我在所有机器上验证hadoop组在所有机器上都包含mapred用户:

[cloudera]# id mapred uid=491(mapred) gid=489(mapred) groups=489(mapred),496(hadoop)

我也开始使用mapred用户并尝试手动访问这些目录,但即使有770权限的文件夹,mapred也无法访问:

[root@mn0 cloudera]# hdfs dfs -ls /tmp/logs/prakul
ls: Permission denied: user=mapred, access=READ_EXECUTE, inode="/tmp/logs/prakul":prakul:hadoop:drwxrwx---

[root@mn0 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

[root@mn0 cloudera]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: mapred/mn0.eastus.cloudapp.azure.com@AD.COM
Valid starting Expires Service principal
06/27/16 01:07:32 06/27/16 11:07:32 krbtgt/AD.COM@AD.COM
renew until 07/04/16 01:07:32

如果我给该目录777权限,那么mapred就能够通过UI和CLI读取和显示日志。

任何人都可以知道它是否是某些Cloudera错误或者是否存在一些配置问题,因为即使在组级别拥有完全权限,mapred也无法访问日志?

我正在使用Cloudera 5.7并启用了Kerberos。

提前致谢

2 个答案:

答案 0 :(得分:0)

我在AD服务器中添加了一个hadoop组,并制作了该组的hdfs,yarn和mapred成员。之后我可以查看日志。

答案 1 :(得分:0)

我已遵循以下cloudera / tmp / logs权限

/ tmp / logs --------------

  1. 假定user1是有效的本地OS用户。以下文件夹结构包含适当的JobHistory功能:
    drwxrwxrwt-hdfs supergroup 0 2014-09-15 17:01 / tmp
    drwxrwxrwt-mapred hadoop 0 2014-09-18 12:02 / tmp / logs
    drwxrwx----user1 hadoop 0 2014-09-18 12:03 / tmp / logs / user1
    drwxrwx----user1 hadoop 0 2014-09-18 12:03 / tmp / logs / user1 / logs

    以下是权限错误的示例条目:
    drwxrwx---hive supergroup 0 2014-09-18 12:00 / tmp / logs / user1 / logs /

  2. 递归调整/ tmp / logs /文件夹,以反映与上述类似的所有权和权限:

用于更新客户在HDFS中的权限的示例命令:

sudo -u hdfs hadoop fs -chown mapred:hadoop / tmp / logs
须藤-u hdfs hadoop fs -chown -R:hadoop / tmp / logs / *