hadoop_机架感知
1、RackAware.py脚本
- 机架感知需要人为进行配置,编写Python脚本“RackAware.py”。内容为
服务器IP与交换机
的对应关系。(开源hadoop,使用RackAware.sh)
# py文件不用单独写一个目录,直接放到这个core-site.xml的所在目录里也可以(我放到了/etc/jiaoben 文件中)
#!/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.4":"SW6300-1",
"12.12.3.5":"SW6300-1",
"12.12.3.6":"SW6300-1",
}
if __name__=="__main__":
print "/" + rack.get(sys.argv[1],"SW6300-1-2")
将RackAware.py拷贝到其他datanode节点
2、core-site.xml配置文件
- 编辑core-site.xml配置文件,将脚本配置为topology.script.file.name的值
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
vim core-site.xml
复制下面代码到文件内configuration内
<property>
<name>topology.script.file.name</name>
<value>这里写你RackAware.py脚本的全路径</value>
</property>
将core-site.xml拷贝到其他datanode节点
3、机架感知启动验证
cd /export/servers/hadoop-2.6.0-cdh5.14.0/sbin
一件关闭集群:
stop-all.sh
一件启动集群:
start-all.sh