实际上需要工程师收到创建一个脚本(python sh ),脚本中记录主机IP和交换机的对应关系。
配置的位置是core-site.xml 最终添加如下配置
#!/usr/bin/python
#-*-coding:UTF-8 -*-
import sys
rack = {
"12.12.3.1":"SW6300-1",
"12.12.3.2":"SW6300-1",
"12.12.3.3":"SW6300-1",
"12.12.3.25":"SW6300-2",
"12.12.3.26":"SW6300-2",
"12.12.3.27":"SW6300-2",
"12.12.3.49":"SW6300-3",
"12.12.3.50":"SW6300-3",
"12.12.3.51":"SW6300-3",
"12.12.3.73":"SW6300-4",
"12.12.3.74":"SW6300-4",
"12.12.3.75":"SW6300-4",
}
if __name__=="__main__":
print "/" + rack.get(sys.argv[1],"SW6300-1-2")
使用以下命令验证
[root@node01 sbin]# python RackAware.py 12.12.3.1
/SW6300-1
[root@node01 sbin]# python RackAware.py 12.12.3.25
/SW6300-2
[root@node01 sbin]# python RackAware.py 12.12.3.75
/SW6300-4
[root@node01 sbin]# python RackAware.py 12.12.3.100
/SW6300-1-2
编辑core-site.xml配置文件,将脚本配置为topology.script.file.name的值
<property>
<name>topology.script.file.name</name>
<value>/home/bigdata/apps/hadoop/etc/hadoop/RackAware.py </value>
</property>