【发布时间】:2015-01-27 23:33:37
【问题描述】:
我对 hdfs 中的权限组如何工作感到非常困惑,至少在我的集群中是这样。假设我有属于 bla 组的 unix 用户 kranach。我从 CDH5 设置了 hadoop2 集群,有一个 unix 组 hadoop 用户 hdfs、yarn 和 mapred 属于该组(但不是 kranach,他与 hadoop 无关)。
现在,我在 hdfs 中的根目录具有如下权限
drwxr-xr-x - hdfs supergroup 0 2015-01-27 23:08 /
所以,我假设既然我,kranach,不属于超级组,我不应该被允许在 / 下创建目录。但是,当我这样做时:
kranach@czarnobog:~$ hdfs dfs -mkdir /bla
kranach@czarnobog:~$ hdfs dfs -ls /
Found 6 items
drwxr-xr-x - kranach supergroup 0 2015-01-27 23:27 /bla
所以我刚刚创建了属于我和组超级组的目录。但是我不在超级组中,首先不应该允许在那里创建目录!根据 hadoop 文档(http://hadoop.apache.org/docs/r1.2.1/hdfs_permissions_guide.html#Configuration+Parameters),默认情况下,hadoop 只检查 linux 用户“组”命令,这对于我的用户来说显然没有显示超级组(它甚至不存在)。
谁能解释一下这种行为?并告诉如何防止它(即我想在这个盒子上有用户,允许访问 hdfs,但不能在那里写任何东西)。
【问题讨论】:
标签: hadoop hdfs cloudera-cdh