hdfs rack机架感知配置

大型Hadoop集群以机架的形式来组织的,同一个机架上不同节点间的网络状况比不同机架之间更为理想,默认情况下,hadoop的机架感知是没有被启用的。

所有的机器Hadoop都默认在同一个默认的 机架下,以名为”/default-rack”,这种情况下,任何一台datanode机器,不管物理上是否属于同一个机架,都

会被认为是在同一个机架下。

启动hadoop机架感知只需要在core-default.xml中加入net.topology.script.file.name属性配置
<property> 
<name>net.topology.script.file.name</name> 
<value>/home/sy/script.py</value> 
</property> 


这个配置选项的value指定为一个可执行程序,通常为一个脚本,该脚本接受一个参数,输出一个值。接受的参数通常为某台datanode机器的ip地址,而输

出的值通常为该ip地址对应的datanode所在的rack
/home/sy/script.pyimport sys  
rack = {"dn177.tj":"rack1",  
        dn178.tj":"rack1",  
        dn179.tj":"rack1",  
        dn180.tj":"rack1",  
        dn186.tj":"rack2",  
        dn187.tj":"rack2",  
        dn188.tj":"rack2",  
        dn190.tj":"rack2",  
        "192.168.1.177":"rack1",  
        "192.168.1.178":"rack1",  
        "192.168.1.180":"rack1",  
        "192.168.1.186":"rack1",  
        "192.168.1.187":"rack2",  
        "192.168.1.188":"rack2",  
        "192.168.1.190":"rack2",  
        } 
if __name__=="__main__":  
    print "/" + rack.get(sys.argv[1],"rack0") 

最好把主机名和ip都配上。
将脚本属性改为可执行  chmod a+x script.py
重启namenode,如果配置成功 namenode 启动日志中会输出:
org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/192.168.1.177:50010 

(如果机架比较复杂,机架上边还有交换机,可把"192.168.1.190":"rack2",改为"192.168.1.190":"/switch1/rack2",本人猜测,还没实践。)


使用CDH的的话,配置机架有两种方法:

1.就是上边说的配置net.topology.script.file.name属性,

2.就是配置CM主页中的主机中的分配




网络拓扑机器之间的距离

有了机架感知,NameNode就可以画出上图所示的datanode网络拓扑图。


D1,R1都是交换机,最底层是datanode。则H1的rackid=/D1/R1/H1,H1的parent是R1,R1的是D1。这些rackid信息可以通过topology.script.file.name配置。有了这些rackid信息就可以计算出任意两台datanode之间的距离。


distance(/D1/R1/H1,/D1/R1/H1)=0  相同的datanode
distance(/D1/R1/H1,/D1/R1/H2)=2  同一rack下的不同datanode
distance(/D1/R1/H1,/D1/R1/H4)=4  同一IDC下的不同datanode
distance(/D1/R1/H1,/D2/R3/H7)=6  不同IDC下的datanode
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunyang098

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值