[英]How to run HDFS cluster without DNS
我正在构建一个本地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服务。 理想情况下,我想使用--link
功能连接所有内容。
有没有办法以这样的方式配置HDFS,它只使用IP地址工作?
我发现这个属性并设置为false,但它没有做到这一点:
dfs.namenode.datanode.registration.ip-hostname-check
(默认值:true)
有没有办法让多节点本地HDFS集群只使用IP地址而不使用DNS?
我会考虑重新配置你的Docker镜像以使用不同的主机文件[1]。 特别是:
希望这对你有用!
[1] https://github.com/dotcloud/docker/issues/2267#issuecomment-40364340
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.