首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HDFS集群不能使用kubernetes + flannel

HDFS集群不能使用kubernetes + flannel
EN

Stack Overflow用户
提问于 2015-11-11 05:31:22
回答 2查看 578关注 0票数 2

我在coreos中启用了flanneld.service来部署kubernetes。然后我通过kubernetes复制控制器启动了hdfs、namenode和datanode。我还为namenode创建了kubernetes服务。namenode服务ip为10.100.220.223,而namenode为10.20.96.4。在我的例子中,一个namenode和一个datanode恰好位于同一个主机上。而namenode和datanode可以成功地互操作。

然而,在尝试启动hdfs datanode时,我遇到了以下两个问题:

  1. 如果我在datanode的core-site.xml中使用namenode服务ip 10.100.220.223作为fs.defaultFS。当datanode试图通过rpc请求将自己注册到namenode时,namenode获得了datanode的错误ip地址。通常,它应该获得datanode的pod,但是在这种情况下,datanode主机的docker0内地址会报告给namenode。
  2. 为了解决这个问题,我在datanode的core-site.xml中使用了namenode pod 10.20.96.4。这一次datanode根本无法启动。错误信息报告说,"k8s_POD-2fdae8b2_namenode-controller-keptk_default_55b8147c-881f-11e5-abad-02d07c9f6649_e41f815f.bridge“被用作namenode主机,而不是namenode。

我试图通过网络搜索这个问题,但没有任何帮助。你能帮帮我吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-12 08:44:02

使用最新的kubernetes并将params --proxy-mode=iptables传递给kube命令,HDFS集群现在可以工作了。

票数 3
EN

Stack Overflow用户

发布于 2015-11-11 23:46:29

这个问题可能是通过kube造成的,它作为一个用户空间代理将导致所有的源IP都是相同的。不知道是否有办法通过应用程序级协议指定datanode。如果有一种方法可以通过命令行参数或一些xml配置文件提供二进制文件,则可以将二进制文件包装在一个shell脚本中,该脚本将首先获取IP:

代码语言:javascript
复制
 IP=$(ip -4 -o addr show eth0 | grep -Po 'inet \K[\d.]+')

然后通过参数传递它,或者在启动datanode二进制文件之前将其写入配置文件。

有关更多信息,请参见https://github.com/coreos/flannel/issues/363https://groups.google.com/forum/#!search/hdfs%2420flannel/google-containers/P4uh7y383oo/bPzIRaxhs5gJ

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33644786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档