Block块的存储策略是什么?HDFS副本放置策略是什么?

本文介绍了HDFS的数据块副本放置策略,考虑了写性能和数据可靠性。默认的三副本策略会在同一机架内的不同节点上分布副本,以平衡延迟和容错能力。当客户端与DataNode同节点或不同节点时,副本放置方式有所不同。该策略确保了在集群物理拓扑结构中的高效数据存取。
摘要由CSDN通过智能技术生成

写在前面

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系

解答

副本放置策略需要考虑到哪些因素?

数据块副本放置策略直接决定了每个数据块多个副本存放节点的选择,一个良好的副本放置策略能权衡写性能和可靠性两个因素,在保证写性能较优的情况下,尽可能提高数据的可靠性

副本放置策略与集群物理拓扑结构是直接相关的,一个集群由多个机架构成,每个机架由16~64个物理节点组成 ,机架内部的节点是通过内部交换机通信的,机架之间的节点是通过外部节点通信的,由于机架间的节点通信需通过多层交换机,相比于机架内节点通信,读写延迟要高一些。

相同机架内部的节点通常“绑定”在一起,多种资源可能是共享的,比如内部交换机,电源插座等,因此它们同时不可用的概率要比不同机架节点高很多。

考虑到集群物理拓扑结构的特点,HDFS默认采用的三副本放置策略(HDFS中副本放置策略是插拔式的,用户可嵌入自己的实现)。

客户端与 DataNode同节点

这是一种常见的场景:上层计算框架处理HDFS数据时,每个任务实际上就是一个客户端,它们运行在与 DataNode 相同的计算节点上(HDFS和YARN同节点部署)。

在这种情况下,三副本放置策略如下:

第一个副本写到同节点的 DataNode上,另外两个副本写到另一个相同机架的不同 DataNode 上。

客户端与 DataNode不同节点

当HDFS之外的应用程序向HDFS写数据时,通常会出现这种情况,

典型的场景有 Flume Sink,用户通过独立客户端 shell fs 命令行将文件上传到HDFS等。

在这种情况下,三副本放置策略如下:

HDFS会随机选择一个 DataNode 作为第一个副本放置节点,其他两个副本写到另一个相同机架的不同 DataNode 上。

评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值