hadoop集群的机架感知功能是提高hadoop集群网络性能的重要参数,配置hadoop机架感知功能的步骤如下:
1)修改core-site.xml文件,添加以下配置项:
<property>
<name>topology.script.file.name</name>
<value>/opt/modules/hadoop/hadoop-0.20.203.0/Utility/RackAware.py</value>
</property>
2)编写 RackAware.py 脚本:
#!/usr/bin/python
#-*-coding:UTF-8 -*-
import sys
rack = {"hadoopnode-176.tj":"rack1",
"hadoopnode-178.tj":"rack1",
"hadoopnode-179.tj":"rack1",
"hadoopnode-180.tj":"rack1",
"hadoopnode-186.tj":"rack2",
"hadoopnode-187.tj":"rack2",
"hadoopnode-188.tj":"rack2",
"hadoopnode-190.tj":"rack2",
"192.168.1.15":"rack1",
"192.168.1.17":"rack1",
"192.168.1.18":"rack1",
"192.168.1.19":"rack1",
"192.168.1.25":"rack2",
"192.168.1.26":"rack2",
"192.168.1.27":"rack2",
"192.168.1.29":"rack2",
}
if __name__=="__main__":
print "/" + rack.get(sys.argv[1],"rack0")
由于没有找到确切的文档说明 到底是主机名还是ip地址会被传入到脚本,所以在脚本中最好兼容主机名和ip地址,如果机房架构比较复杂的话,脚本可以返回如:/dc1/rack1 类似的字符串。
3)执行命令:chmod +x RackAware.py
4)重启namenode
如果配置成功,namenode启动日志中会输出:
2011-12-21 14:28:44,495 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/192.168.1.15:50010 更为详尽的原理及测试请参考:

本文详细介绍了如何配置Hadoop机架感知功能以提高集群网络性能,包括核心步骤、脚本编写、权限设置和namenode日志验证等。通过合理配置,实现更高效的资源调度。
524

被折叠的 条评论
为什么被折叠?



