我有两个服务器hadoop一个是namenode,另一个是secondary namenode。两者都是datanode,当前当我想使用namenode 8020的端口读取一个文件时,它可以工作,但是所有的网络负载都转移到该节点,难道没有办法划分网络负载以利用这两个服务器吗?我很感激你的帮助
l5tcr1uw1#
对于你的处境,你什么都做不了。namenode ha存在,但它更多地是主动/备用的,而不是分布式的。最接近你想要的东西叫做 federation 但这更适用于10k节点的情况,而不是2个节点。你可以在这里阅读更多关于这些的内容:hdfs联合会使用仲裁日志管理器的hdfs高可用性
federation
fd3cxomn2#
以下几点可能会有所帮助:从不建议将datanodes与namenodes放在同一个节点上。如果您的文件存储在同时也是主namenode的datanode上,则所有网络通信都将发送到该节点。您要求该节点(作为namenode)查找该文件,然后从同一节点(作为datanode)返回该文件。如果你有更多的服务器,这个问题就会消失。
2条答案
按热度按时间l5tcr1uw1#
对于你的处境,你什么都做不了。namenode ha存在,但它更多地是主动/备用的,而不是分布式的。最接近你想要的东西叫做
federation
但这更适用于10k节点的情况,而不是2个节点。你可以在这里阅读更多关于这些的内容:
hdfs联合会
使用仲裁日志管理器的hdfs高可用性
fd3cxomn2#
以下几点可能会有所帮助:
从不建议将datanodes与namenodes放在同一个节点上。
如果您的文件存储在同时也是主namenode的datanode上,则所有网络通信都将发送到该节点。您要求该节点(作为namenode)查找该文件,然后从同一节点(作为datanode)返回该文件。
如果你有更多的服务器,这个问题就会消失。