标签:技术 编辑 执行 可靠 log set ado 解决 div
转自:http://www.cnblogs.com/tgzhu/p/5790572.html
client 向 Active NN 发送写请求时,NN为这些数据分配DN地址,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影响。一个简单但非优化的副本放置策略是,把副 本分别放在不同机架,甚至不同IDC,这样可以防止整个机架、甚至整个IDC崩溃带来的错误,但是这样文件写必须在多个机架之间、甚至IDC之间传输,增 加了副本写的代价,是否有较优的方案来解决这个问题呢?
目录:
常用策略:
机架配置:
[network_topology]
hdp2=/rack1
192.168.2.2=/rack2
hdp3=/rack2
192.168.2.99=/rack1
手工修改配置文件,重启服务后修改内容会被冲掉,所以用我们在 ambaria 上去修改,选择 "host" -> "Action" -> "Selected hosts" -> "hosts" --> "set Rack" 修改每台host对应的rack, 保存修改,重启因修改配置而受影响的组件服务,成功后示例如下,这时再去看 topology_mappings.data 的内容已经修改成功:
分配原理:
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
写文件时根据策略输入 dn 节点列表,读文件时按与client由近到远距离返回 dn 列表
标签:技术 编辑 执行 可靠 log set ado 解决 div
原文地址:http://www.cnblogs.com/Xmingzi/p/6032417.html