机架感知
机架感知需要人为进行配置,编写Python脚本“RackAware.py”。内容为服务器IP与交换机的对应关系。(开源hadoop,使用RackAware.sh)
#!/usr/bin/python
#-*-coding:UTF-8 -*-
import sys
rack = {
"12.12.3.1":"DW19-SW001",
"12.12.3.2":"DW19-SW001",
"12.12.3.3":"DW19-SW001",
"12.12.3.4":"DW19-SW001",
"12.12.3.5":"DW19-SW001",
"12.12.3.6":"DW19-SW001",
"12.12.3.25":"DW19-SW002",
"12.12.3.26":"DW19-SW002",
"12.12.3.27":"DW19-SW002",
"12.12.3.49":"DW19-SW003",
"12.12.3.50":"DW19-SW003",
"12.12.3.51":"DW19-SW003",
}
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>
(在configuration标签中)
之后将RackAware.py和core-site.xml文件远程拷贝到集群中的其他虚拟机中
在浏览器里查看(ip:8088)
异常注意:如果出现
查看日志
出现找不到文件异常
查看 RackAware.py 和core-site.xml文件中的路径
(是否有多加空格)