用户'rok'上传文件并将权限设置为770. hdfs上的文件如下所示: “-rw-rw ---- 3 rok hdfs filename1”
我正在使用'ksc'用户来使用'rok'用户上传的数据。首先,我想确认我是否拥有该文件“filename1”的权限。
我可以在哪里找到用户'ksc'的'组'名称?我是否属于hadoop中的'hdfs'组?
顺便说一句, 如果我将文件上传到hadoop,文件权限如下: “-rw-r - r-- 3 ksc ksc filename2”
我的Linux'ksc'用户的本地信息是: uid = 504(ksc)gid = 502(ksc)groups = 502(ksc)
答案 0 :(得分:7)
使用以下命令:
$hdfs groups ksc
它为用户ksc
所属的所有群组提供。
答案 1 :(得分:2)
HDFS遵循传统的Linux文件系统permssions风格。要确定ksc组,如果您使用的是Linux,请使用groups ksc
。
-rw-rw---- 3 rok hdfs filename1
才会授予您读/写权限。从你的输出来看,我认为你不是。
您需要执行以下操作之一:
664
(所有用户的读取权限),这是非常不安全的hdfs
组,更安全选择是你的......
有关详细信息,请参阅以下链接:
http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilesp.html
https://hadoop.apache.org/docs/r1.1.1/hdfs_permissions_guide.html
答案 2 :(得分:0)
Hadoop 将用户映射到组的方式是可配置的,因此 HDFS 组可能与 Unix 组不同。另请注意,如果您的 Hadoop 配置确实使用 Unix 用户组映射,它将使用 NameNode 上的 unix 映射。另请注意,NameNode 会将映射缓存一段时间,因此在缓存过期/刷新之前,您所做的任何更改都可能不可用。
至于检查,除了已经提到的内容之外,如果您具有 root 访问权限,您还可以检查包含这样映射的实际系统文件:
grep <user or group> /etc/group
更多信息: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/GroupsMapping.html