阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HDFS副本放置策略及机架感知

246次阅读
没有评论

共计 1980 个字符,预计需要花费 5 分钟才能阅读完成。

副本放置策略

副本放置策略的基本思想是:
第一个 block 副本放在和 client 所在的 node 里(如果 client 不在集群范围内,则这第一个 node 是随机选取的,当然系统会尝试不选择哪些太满或者太忙的 node)。
第二个副本放置在与第一个节点不同的机架中的 node 中(随机选择)。
第三个副本和第二个在同一个机架,随机放在不同的 node 中。
如果还有更多的副本就随机放在集群的 node 里。

Hadoop 的副本放置策略在可靠性(block 在不同的机架)和带宽(一个管道只需要穿越一个网络节点)中做了一个很好的平衡。下图是备份参数是 3 的情况下一个管道的三个 datanode 的分布情况。
HDFS 副本放置策略及机架感知

流水线复制

当客户端向 HDFS 文件写入数据的时候,一开始是写到本地临时文件中。
假设该文件的副本系数设置为 3,当 本地临时文件累积到一个数据块的大小 时,客户端会从 Namenode 获取一个 Datanode 列表用于存放副本。然后客户端开始向第一个 Datanode 传输数据,第一个 Datanode 一小部分一小部分 (4 KB) 地接收数据,将 每一部分写入本地仓库,并同时传输该部分到列表中第二个 Datanode 节点。第二个 Datanode 也是这样,一小部分一小部分地接收数据,写入本地仓库,并同时传给第三个 Datanode。最后,第三个 Datanode 接收数据并存储在本地。因此,Datanode 能流水线式地从前一个节点接收数据,并同时转发给下一个节点,数据以流水线的方式从前一个 Datanode 复制到下一个 Datanode。

机架感知

大型 Hadoop 集群以机架的形式来组织的,同一个机架上不同节点间的网络状况比不同机架之间更为理想。另外,NameNode 设法将数据块副本保存在不同的机架上以提高容错性。

网络拓扑

HDFS 副本放置策略及机架感知

有了机架感知,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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118465.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计1980字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中