hadoop - 用户是否需要跨所有节点存在才能被hadoop集群/HDFS识别?
问题描述
在 MapR hadoop 中,为了让用户能够访问 HDFS 或将 YARN 用于程序,它们需要存在于集群中的所有节点(具有相同的 uid 和 gid),这包括不充当任何一个的客户端节点数据节点或控制节点(MapR 并没有真正的名称节点的概念)。Hortonworks HDP 也一样吗?
解决方案
在 Hortonworks社区网站上找到了这个答案:
用户不应在集群的所有节点上拥有帐户。他应该只在边缘节点上拥有帐户。
对于新用户,我们需要在用户访问集群之前创建两种类型的目录。
1- 用户主目录 [在 Linux 文件系统上创建的目录,即。/家/]
2-用户HDFS目录[在HDFS文件系统上创建的目录,即。/用户/]
...您只需要创建 HDFS 主目录[即。/user/]在边缘节点上[不确定这里的含义,因为 HDFS 似乎与任何特定的边缘节点没有任何关系]。即使您没有在 linux 中创建他的主目录,您仍然可以在集群上使用新用户运行作业。
**更新:根据用户@cricket_007 的评论,该用户似乎也必须存在于名称节点服务器上。我能找到的最接近明确说明这一点的文档说:
每个文件或目录操作都将完整的路径名传递给 NameNode,并且权限检查沿着每个操作的路径应用。客户端框架会将用户身份与 NameNode 的连接隐式关联起来,从而减少对现有客户端 API 进行更改的需要。[...] 例如,当客户端第一次开始读取文件时,它会向 NameNode 发出第一个请求,以发现文件第一个块的位置。
推荐阅读
- ios - Apple 登录:在服务器端验证 identityToken
- vb.net - 如何从文本文件中读取和存储数据
- android - 减少 android 应用程序包大小 (.aab)。如何不导出某些图像资源文件?
- flutter-web - Flutter web - 不支持的操作:InternetAddress.LOOPBACK_IP_V4
- android - 当应用程序将在 Playstore / Appstore 上发布时,使用 expos intern 文件系统 API 是否比 react-native-fs 更好?
- python - 将python中的多个线程分配给命令行工具
- python - 滚动条附加错误
- opencv - 从图像中分割文本
- pyspark - 使用 foreachBatch 时在哪里放置 awaitTermination() - pyspark 流式传输
- javascript - 赛普拉斯 e2e 测试:如何从 .js 文件的链接调用 JavaScript 函数