hadoop:HDFS副本存放策略

第一个block副本放在和client所在的node里(如果是集群外提交,则随机挑选一台磁盘不太慢、CPU不太忙的节点上)。
第二个副本放置在与第一个节点不同的机架中的node中(随机选择)。
第三个副本和第二个在同一个机架,随机放在不同的node中。
如果还有更多的副本就随机放在集群的node里。

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

注: 修改副本数 修改hdfs-site.xml中dfs.replication配置项

原文参考:https://blog.csdn.net/xinganshenguang/article/details/55808644

猜你喜欢

转载自blog.csdn.net/weixin_38750084/article/details/82964028
今日推荐