【发布时间】:2015-12-22 15:00:02
【问题描述】:
我在启用了文件系统权限的私有集群上运行 Hadoop 2.6.2。集群有密码文件,只有像 hadoop 这样的系统用户,没有个人账户。我正在从具有像我这样的个人帐户('clott')的 linux 边缘节点访问 DFS。
问题是我无法写入模式 775 和组 hadoop 的 DFS 目录(“共享”);边缘节点向我展示了 hadoop 组的成员。我以为会使用边缘节点上的用户组成员资格,但不是吗?这是我看到的:
clott@edge$ id
uid=1003(clott) gid=1003(clott) groups=1003(clott),27(sudo),1001(hadoop)
clott@edge$ hdfs dfs -ls /user/hadoop
Found 3 items
drwxr-xr-x - hadoop hadoop 0 2015-12-03 16:55 /user/hadoop/DistributedShell
drwxrwxr-x - hadoop hadoop 0 2015-12-22 09:25 /user/hadoop/shared
clott@edge$ hdfs dfs -mkdir /user/hadoop/shared/foo
mkdir: Permission denied: user=clott, access=WRITE, inode="/user/hadoop/shared":hadoop:hadoop:drwxrwxr-x
我检查了名称节点并在其日志中发现了这个警告:
2015-12-22 09:32:40,941 WARN org.apache.hadoop.security.UserGroupInformation: No groups available for user clott
这是有道理的 - 名称节点不授予我访问权限,因为它不为我识别任何组。
那么名称节点是如何找到组成员的呢?一些谷歌搜索似乎建议我必须将我的用户名和各种组添加到 cluster 但这听起来不对。当然,如果我将 DFS 目录模式设置为 777,这将有效,但这是不对的。
请帮忙,提前谢谢。
【问题讨论】:
-
嘿匿名的反对者,不如在这里添加评论并提出反对意见?