背景
我们都知道hadoop是用来存储海量数据的,所以对于hadoop集群,服务器与服务器间的通信时,对于网络带宽尤为重要,但是带宽费用又特别昂贵。由于受上层交换机的影响相同的带宽下,相同机架内的服务器通信远比不同机架服务器通信快。对于这一点,hadoop提供了一个配置项,用来手动设置机架感知。因为对于小的hadoop集群来说,这个优化几乎没有必要,所以hadoop对于机架感知配置项默认是关闭的。
机架感知
在hdfs集群中,文件存储是分成多个block块存储,一个block块默认的大小为128M。为了保证hadoop集群的高效性和安全性,每个block快会备份多个副本,副本个数默认为3个。
在没有配置机架感知的情况下,客户端上传文件到HDFS上时,block是随机存储在不同的服务器。这样就无法优化服务器间的通信效率。如果随机分配到同一个机架内,那如果这个机架断电,那么就会存在安全性问题。
hadoop机架感知策略:
当客户端上次文件到HDFS上
1、文件的block第一个副本存储在客户端链接的服务器上
2、block第二个副本会存储在不同机架内的随机一个服务器上
3、block第三个副本存储在与第二个副本相同机架内不同的服务器上
更多副本随机节点存储
配置
首先需要在namenode的core-site.xml加字段
<property>
<name>topology.script.file.name</name>
<value>/hadoop/servers/hadoop-2.6.0-cdh5.14.2/etc/hadoop/topology.sh&

最低0.47元/天 解锁文章
2711

被折叠的 条评论
为什么被折叠?



