第一步:
机架感知需要人为进行配置,编写Python脚本“RackAware.py”。内容为服务器IP与交换机的对应关系。
#!/usr/bin/python #-*-coding:UTF-8 -*- import sys rack = { "192.168.10.100":"NODE-SW001", "192.168.10.101":"NODE-SW002", "192.168.10.102":"NODE-SW003", } if __name__=="__main__": print "/" + rack.get(sys.argv[1],"NODE-SW001")第二步: 将编写好的pythod脚本放入任意位置并记住路径(这里我放到了与hadoop的配置文件一样的位置)
这里存放脚本后需要添加可执行的权限
第三步:
修改配置文件core-site.xml,添加以下数据到该配置文件
<property> <name>topology.script.file.name</name> <value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/RackAware.py</value> </property>这里的value是脚本文件的路径(注意:这里的路径不要有空格) 以下是错误写法
<property> <name>topology.script.file.name</name> <value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/RackAware.py </value> </property>第四步:
通过scp指令将core-site.xml和脚本发送到其他节点(注意:要和第一个配置的路径一致)
最后一步:
启动hadoop查看8088端口,是否改成功
