加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

hadoop – 如何在没有DNS的情况下运行HDFS集群

发布时间:2020-12-16 03:27:30 所属栏目:安全 来源:网络整理
导读:我正在构建一个本地HDFS开发环境(实际上是hadoop mesos zk kafka),以简化Spark作业的开发并促进本地集成测试. 所有其他组件都运行正常,但我遇到了HDFS问题.当数据节点尝试连接到名称节点时,我得到一个DisallowedDataNodeException: org.apache.hadoop.hdfs.

我正在构建一个本地HDFS开发环境(实际上是hadoop mesos zk kafka),以简化Spark作业的开发并促进本地集成测试.
所有其他组件都运行正常,但我遇到了HDFS问题.当数据节点尝试连接到名称节点时,我得到一个DisallowedDataNodeException:

org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode

与同一问题相关的大多数问题归结为名称节点上的数据节点的名称解析,或者通过etc / hosts文件或使用dns进行静态解析.静态解析不是docker的选项,因为我不知道创建名称节点容器时的数据节点.我想避免创建和维护其他DNS服务.理想情况下,我想使用docker的–link功能连接所有内容.

有没有办法以这样的方式配置HDFS,它只使用IP地址工作?

我发现这个属性并设置为false,但它没有做到这一点:

dfs.namenode.datanode.registration.ip-hostname-check(默认值:true)

有没有办法让多节点本地HDFS集群只使用IP地址而不使用DNS?

最佳答案
我会考虑重新配置你的Docker镜像以使用不同的主机文件[1].特别是:

>在Dockerfile中,执行switch-a-roo [1]
>打开主节点
>打开链接的数据节点
>在启动datanode之前,将/ etc / hosts复制到新位置/ tmp / hosts
>将主节点的名称和主节点ip附加到新的hosts文件

希望这对你有用!

[1] https://github.com/dotcloud/docker/issues/2267#issuecomment-40364340

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读