HDFS副本放置策略及机架感知
来源:互联网 发布:新买ssd怎么装系统知乎 编辑:程序博客网 时间:2024/05/16 00:47
副本放置策略
副本放置策略的基本思想是:
第一个block副本放在和client所在的node里(如果client不在集群范围内,则这第一个node是随机选取的,当然系统会尝试不选择哪些太满或者太忙的node)。
第二个副本放置在与第一个节点不同的机架中的node中(随机选择)。
第三个副本和第二个在同一个机架,随机放在不同的node中。
如果还有更多的副本就随机放在集群的node里。
Hadoop的副本放置策略在可靠性(block在不同的机架)和带宽(一个管道只需要穿越一个网络节点)中做了一个很好的平衡。下图是备份参数是3的情况下一个管道的三个datanode的分布情况。
流水线复制
当客户端向 HDFS 文件写入数据的时候,一开始是写到本地临时文件中。
假设该文件的副本系数设置为 3 ,当本地临时文件累积到一个数据块的大小时,客户端会从 Namenode 获取一个 Datanode 列表用于存放副本。然后客户端开始向第一个Datanode传输数据,第一个 Datanode 一小部分一小部分 (4 KB) 地接收数据,将每一部分写入本地仓库,并同时传输该部分到列表中第二个 Datanode 节点。第二个 Datanode 也是这样,一小部分一小部分地接收数据,写入本地仓库,并同时传给第三个 Datanode 。最后,第三个 Datanode 接收数据并存储在本地。因此,Datanode 能流水线式地从前一个节点接收数据,并同时转发给下一个节点,数据以流水线的方式从前一个Datanode复制到下一个Datanode。
机架感知
大型Hadoop集群以机架的形式来组织的,同一个机架上不同节点间的网络状况比不同机架之间更为理想。另外,NameNode设法将数据块副本保存在不同的机架上以提高容错性。
网络拓扑
有了机架感知,NameNode就可以画出上图所示的datanode网络拓扑图。D1,R1都是交换机,最底层是datanode。
则H1的rackid=/D1/R1/H1,H1的parent是R1,R1的parent是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
注意:
1)当没有配置机架信息时,所有的机器Hadoop都默认在同一个默认的
机架下,以名为”/default-rack”,这种情况下,任何一台datanode机器,不管物理上是否属于同一个机架,都会被认为是在同一个机架下。
2)一旦配置topology.script.file.name
,就按照网络拓扑结构来寻找datanode。topology.script.file.name
这个配置选项的value指定为一个可执行程序,通常为一个脚本。
Hadoop如何修改HDFS文件存储块大小 http://www.linuxidc.com/Linux/2013-09/90100.htm
将本地文件拷到HDFS中 http://www.linuxidc.com/Linux/2013-05/83866.htm
从HDFS下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm
将本地文件上传至HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm
HDFS基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm
Hadoop中HDFS和MapReduce节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm
《Hadoop实战》中文版+英文文字版+源码【PDF】 http://www.linuxidc.com/Linux/2012-10/71901.htm
Hadoop: The Definitive Guide【PDF版】 http://www.linuxidc.com/Linux/2012-01/51182.htm
更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
- HDFS副本放置策略及机架感知
- HDFS副本放置策略及机架感知
- HDFS的副本放置策略(机架感知 rack awareness)
- 原创 HDFS的副本放置策略(机架感知 rack awareness)
- HDFS副本放置策略
- HDFS副本放置策略
- hdfs的机架感知
- hdfs 机架感知
- HDFS--机架感知
- 【HDFS】hadoop的机架感知策略是啥?
- HDFS机架感知策略,MapReduce的Shuffle过程
- HDFS原理-架构、副本机制、HDFS负载均衡、机架感知、健壮性、文件删除恢复机制
- Hadoop学习4-HDFS详解1(SNN、副本放置策略)
- HDFS副本放置策略的研究和优化
- HDFS实验之一:机架感知
- HDFS实验之一:机架感知
- hdfs rack机架感知配置
- Hadoop学习:HDFS 机架感知
- 带你认识指针——C语言的灵魂(一)
- The RADIUS Session Process
- LeetCode 275. H-Index II
- @ResponseBody 中文乱码
- 解决java动态生成html文档为乱码的问题
- HDFS副本放置策略及机架感知
- anjularJS笔记-根据经纬度计算km
- 雷声大雨点小的冯小刚之《我不是潘金莲》观后感
- Bmob发送短信验证码官方demo更新(3.5.0)版本
- QML与c++交互的一些坑
- java中try/catch性能和原理
- iOS7以上系统自定义UIAlertController
- 自定义搜索框的UI
- 关于JSP中文乱码问题解决方法