我对hdfs中的权限组如何工作感到困惑,至少在我的群集中是这样。假设我有unix用户kranach,属于group bla。我有来自CDH5的hadoop2群集设置,有unix group hadoop ,用户hdfs,yarn和mapred belogns(但不是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
所以我刚刚创建了属于我和group supergroup的目录。但我不是超级组,不应该被允许在那里创建dirs!根据hadoop文档(http://hadoop.apache.org/docs/r1.2.1/hdfs_permissions_guide.html#Configuration+Parameters)默认情况下hadoop只检查linux用户“group”命令,这显然对我的用户不显示超级组(它甚至不存在)。
有人可以解释一下这种行为吗?并告诉如何防止它(即我希望在这个盒子上有用户,允许访问hdfs,但不能写任何东西)。
答案 0 :(得分:0)
嗯,长话短说,毕竟看起来安全已经被禁用了。我只是不知道服务器端服务不使用/ etc / hadoop / conf,但每个服务器都在/var/run/cloudera-scm-agent/process/_process-name/
内有自己的配置。这些也可以在CM UI中看到,例如CM - > HDFS - >实例 - > NameNode - >流程 - > HDFS-site.xml中。