Hadoop 在高可用性联邦环境中添加新数据节点时遇到问题

Hadoop 在高可用性联邦环境中添加新数据节点时遇到问题,hadoop,hdfs,cloudera,high-availability,Hadoop,Hdfs,Cloudera,High Availability,我正在尝试设置/维护3个HDFS群集,所有这些群集都使用高可用性。他们自己都能很好地工作,但我想使用HDFS联合会来帮助他们相互交谈 我使用的是Cloudera420,并使用了他们的指南进行了设置。对于每个集群,core-site.xml文件都是不同的(fs.defaultFS),而hdfs-site.xml文件都是相同的。hdfs-site.xml文件列出了所有名称服务(dfs.nameservices),当然,这些名称服务会引用回相应的core-site.xml。每个集群都有一个从属文件,其

我正在尝试设置/维护3个HDFS群集,所有这些群集都使用高可用性。他们自己都能很好地工作,但我想使用HDFS联合会来帮助他们相互交谈

我使用的是Cloudera420,并使用了他们的指南进行了设置。对于每个集群,core-site.xml文件都是不同的(fs.defaultFS),而hdfs-site.xml文件都是相同的。hdfs-site.xml文件列出了所有名称服务(dfs.nameservices),当然,这些名称服务会引用回相应的core-site.xml。每个集群都有一个从属文件,其中列出了应该属于它的数据节点

我的问题是添加一个新的数据节点。我用配置文件(core、hdf、slave等)为我想要加入的集群设置了它。但是,当我启动datanode时,它似乎试图加入dfs.nameservices属性中列出的第一个集群。我认为它应该首先查看fs.defaultFS属性,但它似乎没有这样做。错误的集群似乎也接受了它,尽管新的数据节点不在从属文件中

总之,我的新datanode正在尝试加入错误的集群。它如何知道加入哪一个

提前谢谢你的建议

**更新**

也许我只是误解了这样做的用例。当我浏览Hadoop代码时,似乎每个dfs.nameservices条目都启动了一个线程。其中每一个都尝试将其CID分配给单个DataNode对象,但前提是该对象已为null。它这样做似乎不考虑顺序,这意味着第一个获胜。只有当我“幸运”时,它才会选择正确的一个。如果我不是“幸运的”,我通常不是,它会得到另一个。。。然后先连接到那里。奇怪