Hadoop——机架感知

Hadoop中副本在不同节点之间的复制需要消耗资源,为了充分发挥Hadoop的性能,Hadoop需要配置机架感知,这可以让Hadoop通过网络拓扑图计算不同节点之间的距离,因此来减少数据传输消耗的资源。

通过Hadoop官网我们知道,不配置机架感知,所有的都默认为/default-rack,可以通过命令hadoop dfsamin -printTopology来查看Hadoop的网络拓扑情况。

配置Hadoop机架感知需要在core-site.xml中配置

<property>

<name>topology.script.file.name</name>

<value>/home/XXX/topology.sh</value>

</property>

 

topology.sh脚本根据输入的参数进行判断,参数一般是主机名或者ip地址,判断出它对应的机架号,

hosts为各个节点的信息

topology.sh脚本如下:

#! /bin/sh
FILE=/home/enche/software/hadoop-2.7.7/etc/hadoop/hosts
exec < $FILE
while [ $# -gt 0 ];do
        result=""
        arg=$1
        while read line;do
        arr=(${line})
        if [ "${arr[0]}" = "$arg" ]||[ "${arr[1]}" = "$arg" ];then
                result="${arr[2]}"
        fi
        done
        shift
        if [ -z "${result}" ];then
                echo -n "/default-rack"
        else
                echo -n "$result"
        fi
done
 

host文本信息如下:

enche01 192.168.3.5 /dc1/rack1
enche02 192.168.3.6 /dc1/rack1
enche03 192.168.3.11 /dc1/rack2
enche04 192.168.3.100 /dc1/rack2

解释:encheXX表示主机名   xxx.xxx.xxx.xxx表示对应的ip      /xxx/xxx 表示对应的机架号

配置好后重启集群,使用 hadoop dfsadmin -printTopoloty查看Hadoop节点对应的机架信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值