【问题标题】:Do users need to exist across all nodes to be recognized by the hadoop cluster / HDFS?用户是否需要存在于所有节点上才能被 hadoop 集群/HDFS 识别?
【发布时间】:2019-12-10 15:28:36
【问题描述】:

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

【问题讨论】:

    标签: hadoop hdfs hdp


    【解决方案1】:

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

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

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

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

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

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

    ** 更新: 根据用户 @cricket_007 的 cmets,看来 该用户也必须存在于 namenode 服务器上。我能找到的最接近明确说明says的文档:

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

    【讨论】:

    • 这是不正确的。假设您启用了 ACL,该用户也应该存在于 Namenode 上
    • @cricket_007 不使用 ACL,但很高兴知道。有这样说的参考文档吗?奇怪的是,我认为,我们的 HDP 安装在配置中启用了 ACL(但未使用),但我一直在使用上面的信息让服务用户与 YARN 和 HDFS 交互并且还没有遇到任何问题。
    • 默认情况下,在 Hadoop 文档中的某处,它说在名称节点(仅通过用户名)检查文件权限。不过,安全选项是使用 Kerberos,因为用户名字符串很容易被覆盖
    • @cricket_007 如果集群使用具有多个名称节点的 HDFS 联合,用户需要存在于所有名称节点上还是只存在其中一个名称节点上?
    • 没用过,但我认为应该都是这样,因为读/写请求仍然流经这些单独的节点
    猜你喜欢
    • 1970-01-01
    • 2019-12-26
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多