我有一个名称节点HDFS群集,其中包含多个数据节点,可存储数TB的数据。我想在该群集上启用高可用性并添加另一个名称节点。实现这一目标的最有效和最不容易出错的方法是什么?理想情况下,这可以在没有任何停机或简单重启的情况下工作。
我想到的两个选项是:
第一种方法似乎更容易,但需要一些停机时间,我不确定是否可能。第二个是某种程度上更清晰,但数据迁移和指针调整存在潜在问题。
答案 0 :(得分:0)
你无法在没有停机的情况下就地做到这一点;非HA设置正是如此,而不是高可用性,因此任何代码/配置更改都需要停机时间。
要在就地执行此操作时产生最少的停机时间,您可能希望:
hdfs dfsadmin
命令创建新的fsImage。这将确保NameNode能够快速重启(在启动时,NN将读取最新的fsImage,然后应用在该fsImage之后创建的EditLog的所有编辑)。此时所有内容都可以识别HA,并且唯一的停机时间是快速重启活动NN - 相当于在非HA设置中更改代码/配置期间的体验。
您的第二种方法应该有效,但请记住,您需要两倍的硬件,并且在迁移过程中保持两个群集的一致性可能很困难。