Hadoop学习:HDFS 机架感知

client 向 Active NN 发送写请求时,NN为这些数据分配DN地址,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影响。一个简单但非优化的副本放置策略是,把副本分别放在不同机架,甚至不同IDC,这样可以防止整个机架、甚至整个IDC崩溃带来的错误,但是这样文件写必须在多个机架之间、甚至IDC之间传输,增加了副本写的代价,是否有较优的方案来解决这个问题呢?

目录:

常用策略

机架配置

分配原理

常用策略:

hdfs 在缺省配置下副本数是3个,通常的策略是:

第一个副本放在和Client相同机架的Node里(如果Client不在集群范围,第一个Node是随机选取不太满或者不太忙的Node)

第二个副本放在与第一个Node不同的机架中的Node

第三个副本放在与第二个Node所在机架里不同的Node. 示例图如下:

Hadoop学习:HDFS 机架感知

机架配置:

分配原理:

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

Hadoop学习:HDFS 机架感知

最底层是Hx是 datanode, 则H1的rackid=/D1/R1/H1,H1的parent是R1,R1的是D1,有了这些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

写文件时根据策略输入 dn 节点列表,读文件时按与client由近到远距离返回 dn 列表

下面关于Hadoop的文章您也可能喜欢,不妨看看:

Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程 

CentOS安装和配置Hadoop2.2.0 

Ubuntu 13.04上搭建Hadoop环境

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Ubuntu下Hadoop环境的配置

单机版搭建Hadoop环境图文教程详解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7ec0ea9a4f73d135e52236fbb0e0ddd8.html