Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop HDFS主目录_Hadoop_Cluster Computing_Hdfs_User Permissions - Fatal编程技术网

Hadoop HDFS主目录

Hadoop HDFS主目录,hadoop,cluster-computing,hdfs,user-permissions,Hadoop,Cluster Computing,Hdfs,User Permissions,我已经设置了一个单节点多用户hadoop集群。 在我的集群中,有一个管理员用户负责运行集群(超级用户)。所有其他用户都分配了一个hdfs目录,如/home/xyz,其中xyz是用户名 在unix中,我们可以在/etc/passwd中更改用户的默认主目录。默认情况下,用户的登录目录是主目录 如何在hadoop for hdfs文件系统中实现这一点。 例如,如果用户类型为: unix提示符上的$hadoop dfs-ls。 它将列出我分配的主目录的内容 此外,hdfs目录是由运行集群的超级用户(ha

我已经设置了一个单节点多用户hadoop集群。 在我的集群中,有一个管理员用户负责运行集群(超级用户)。所有其他用户都分配了一个hdfs目录,如/home/xyz,其中xyz是用户名

在unix中,我们可以在/etc/passwd中更改用户的默认主目录。默认情况下,用户的登录目录是主目录

如何在hadoop for hdfs文件系统中实现这一点。 例如,如果用户类型为: unix提示符上的$hadoop dfs-ls。 它将列出我分配的主目录的内容


此外,hdfs目录是由运行集群的超级用户(hadoop超级用户而非unix根用户)创建的,然后将所有权转移给特定用户。

我不确定这是可以配置的-的源(第150行)调用了getHomeDirectory,这似乎是硬编码的:

@Override
public Path getHomeDirectory() {
  return makeQualified(new Path("/user/" + dfs.ugi.getShortUserName()));
}
如果要更改此设置,您有两种可能的选择:

  • 向hadoop提交申请单,要求提供新功能-
  • 自己修改源代码,重新构建并在集群中重新分发hadoop核心jar(在单节点伪集群中很简单)
tapan,每个用户在HDFS中都有一个位于/user/username的“主”目录。例如,如果您键入hadoop fs-ls,它将为您提供当前的HDFS用户目录。我和两个用户在单张上进行了检查


谈到类unix文件(/etc/passwd)设置,我不知道。但是,这真的很有趣。正如chris所说,我们可以添加新功能,例如,引入user-admin-site.xml之类的配置文件,并添加组、用户对目录的权限、主目录等。非常有趣,我们必须尝试一下…

嗨,chris,很酷的观察!我将尝试重建我的源代码,但我只是想知道我是否只需要像您提到的那样进行一次更改,或者我可能需要在其他一些函数中进行更改。从hadoop源代码目录执行:
grep“\”/user“*-iRn--include=\*.java
-这将捕获大多数文件,但可能不是所有文件。您可能不必修改所有的单元测试。祝你好运