HDFS-机架感知脚本

机架感知需要人为进行配置,编写python脚本"RackAware.py",内容为服务器ip与交换机的对应关系(开源hadoop使用的是RackAware.sh)

#!/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",  

        "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")

HDFS-机架感知脚本_第1张图片

试一下:

python RackAware.py 12.12.3.73

HDFS-机架感知脚本_第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>

你可能感兴趣的:(HDFS)