首页 > 解决方案 > 用户是否需要跨所有节点存在才能被hadoop集群/HDFS识别?

问题描述

在 MapR hadoop 中,为了让用户能够访问 HDFS 或将 YARN 用于程序,它们需要存在于集群中的所有节点(具有相同的 uid 和 gid),这包括不充当任何一个的客户端节点数据节点或控制节点(MapR 并没有真正的名称节点的概念)。Hortonworks HDP 也一样吗?

标签: hadoophdfshdp

解决方案


在 Hortonworks社区网站上找到了这个答案:

用户不应在集群的所有节点上拥有帐户。他应该只在边缘节点上拥有帐户。

对于新用户,我们需要在用户访问集群之前创建两种类型的目录。

1- 用户主目录 [在 Linux 文件系统上创建的目录,即。/家/]

2-用户HDFS目录[在HDFS文件系统上创建的目录,即。/用户/]

...您只需要创建 HDFS 主目录[即。/user/]在边缘节点上[不确定这里的含义,因为 HDFS 似乎与任何特定的边缘节点没有任何关系]。即使您没有在 linux 中创建他的主目录,您仍然可以在集群上使用新用户运行作业

**更新:根据用户@cricket_007 的评论,该用户似乎也必须存在于名称节点服务器上。我能找到的最接近明确说明这一点的文档

每个文件或目录操作都将完整的路径名传递给 NameNode,并且权限检查沿着每个操作的路径应用。客户端框架会将用户身份与 NameNode 的连接隐式关联起来,从而减少对现有客户端 API 进行更改的需要。[...] 例如,当客户端第一次开始读取文件时,它会向 NameNode 发出第一个请求,以发现文件第一个块的位置。


推荐阅读