我已经设置了单节点多用户hadoop集群。 在我的群集中,有一个管理员用户负责运行群集(超级用户)。所有其他用户都分配了一个hdfs目录,如/ home / xyz,其中xyz是用户名。
在unix中,我们可以在/ etc / passwd中更改用户的默认主目录。默认情况下,用户的登录目录是主目录。
如何在hadoop中为hdfs文件系统执行此操作。 我想要例如,如果用户类型: unix提示符下的$ hadoop dfs -ls。 它应列出我分配的主目录的内容。
此外,hdfs目录由运行集群的超级用户(hadoop超级用户而不是unix root)创建,然后将所有权转移给特定用户。
答案 0 :(得分:7)
我不确定这是否可以配置 - DistributedFileSystem(第150行)的来源调用似乎是硬编码的getHomeDirectory:
@Override
public Path getHomeDirectory() {
return makeQualified(new Path("/user/" + dfs.ugi.getShortUserName()));
}
如果您希望能够更改此选项,您有两种可能的选择:
答案 1 :(得分:1)
tapan,每个用户在HDFS中都有一个位于/ user / username的“home”目录。例如,如果键入hadoop fs -ls,它将显示当前的HDFS用户目录。我和两个用户一起检查了它。
像文件(/ etc / passwd)设置一样unix,我不知道。但是,它真的很有趣。正如克里斯所说,我们可以添加新的功能,例如,引入user-admin-site.xml之类的配置文件并添加组,用户对目录,主目录等的权限。真的在进行中,我们试试这个......