4

用户rok上传文件并将权限设置为 770。HDFS 上的文件如下所示:

-rw-rw---- 3 rok hdfs  filename1

我正在使用ksc用户来使用用户上传的数据rok。因此,首先,我想确保该ksc文件具有权限filename1

如何找出我的用户的组名ksc?用户是否属于hdfsHadoop 中的组?

顺便说一句,如果我将文件上传到 Hadoop,文件权限如下所示:

-rw-r--r-- 3 ksc ksc filename2

我的 Linux 用户的本地信息ksc是:

uid=504(ksc) gid=502(ksc) groups=502(ksc)
4

3 回答 3

12

使用以下命令:

$hdfs groups ksc

ksc它给出了用户所属的所有组。

于 2017-07-25T17:17:05.260 回答
2

HDFS 遵循 Linux 文件系统权限的传统风格。要确定 ksc 组,groups ksc请在 Linux 上使用。

-rw-rw---- 3 rok hdfs filename1只有当您是 hdfs 组的成员时,才会授予您读/写权限。从你的输出来看,我认为你不是。

您将需要执行以下操作之一:

  • 将 rok 的文件权限更改为664(所有用户的读取权限),这是非常不安全的
  • 将ksc加入hdfs群组,更安全

这是你的选择...

有关更多信息,请参阅以下链接:

http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilesp.html

https://hadoop.apache.org/docs/r1.1.1/hdfs_permissions_guide.html

于 2013-09-05T05:22:47.357 回答
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

于 2021-01-05T22:52:03.873 回答