Hadoop集群启动机架感知

2019-03-28 13:51|来源: 网络

Hadoop集群的机架感知功能是提高hadoop集群网络性能的重要参数,配置hadoop机架感知功能的步骤如下:

      1)修改core-site.xml文件,添加以下配置项:

  1. <property>  
  2.   <name>topology.script.file.name</name>  
  3.   <value>/opt/modules/hadoop/hadoop-0.20.203.0/Utility/RackAware.py</value>  
  4. </property>  

    2)编写 RackAware.py 脚本:

  1. #!/usr/bin/python   
  2. #-*-coding:UTF-8 -*-   
  3. import sys  
  4.   
  5. rack = {"hadoopnode-176.tj":"rack1",  
  6.         "hadoopnode-178.tj":"rack1",  
  7.         "hadoopnode-179.tj":"rack1",  
  8.         "hadoopnode-180.tj":"rack1",  
  9.         "hadoopnode-186.tj":"rack2",  
  10.         "hadoopnode-187.tj":"rack2",  
  11.         "hadoopnode-188.tj":"rack2",  
  12.         "hadoopnode-190.tj":"rack2",  
  13.         "192.168.1.15":"rack1",  
  14.         "192.168.1.17":"rack1",  
  15.         "192.168.1.18":"rack1",  
  16.         "192.168.1.19":"rack1",  
  17.         "192.168.1.25":"rack2",  
  18.         "192.168.1.26":"rack2",  
  19.         "192.168.1.27":"rack2",  
  20.         "192.168.1.29":"rack2",  
  21.         }  
  22.   
  23.   
  24. if __name__=="__main__":  
  25.     print "/" + rack.get(sys.argv[1],"rack0")  
       由于没有找到确切的文档说明 到底是主机名还是ip地址会被传入到脚本,所以在脚本中最好兼容主机名和ip地址,如果机房架构比较复杂的话,脚本可以返回如:/dc1/rack1 类似的字符串。

       3)执行命令:chmod +x RackAware.py

       4)重启namenode

            如果配置成功,namenode启动日志中会输出:

  1. 2011-12-21 14:28:44,495 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/192.168.1.15:50010  
       更为详尽的原理及测试请参考:

hadoop集群网络性能优化:hadoop机架感知实现及配置

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多