启用kerberos后historyserver无法读取日志

omtl5h9j  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(452)

我在集群上启用了kerberos,它工作正常。但由于某些问题,mapred用户无法通过jobhistory服务器读取和显示日志。我查看了job history server的日志,它给出了如下访问错误:

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/folder提供了类似的错误,因为在资源管理器ui上没有显示日志。
我在所有计算机上验证hadoop组是否包含所有计算机上的Map用户:

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

我还绑定mapred用户并尝试手动访问这些目录,但mapred无法访问,即使文件夹具有770权限:

[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能够读取和显示logoverui以及cli。
有人知道这是cloudera的错误还是配置问题,mapred甚至在组级别拥有完全权限也无法访问日志吗?
我使用的是启用了kerberos的cloudera5.7。
提前谢谢

p4rjhz4m

p4rjhz4m1#

我已按照以下权限访问cloudera/tmp/logs
/tmp/日志---------
假设user1是有效的本地操作系统用户。以下文件夹结构包含适当的jobhistory功能:
 

DRWXRWT-hdfs超级组0 2014-09-15 17:01/tmp

drwxrwt-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超群0 2014-09-18 12:00/tmp/logs/user1/logs/

递归地调整/tmp/logs/folders以反映所有权和权限,类似于上面所述:
 

在hdfs中更新客户权限的命令示例:
 

sudo-u hdfs hadoop fs-chownmapred:hadoop /tmp/logs

sudo-u hdfs hadoop fs-chown-r:hadoop/tmp/logs文件/*

6rqinv9w

6rqinv9w2#

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

相关问题