namenode如何存储复本?

namenode如何选择在哪个datanode存储复本?这里需要对可靠性,写入带宽和读取带宽进行权衡。例如,把所有复本都存储在一个节点损失的写入带宽最小,因为复制管线都是在同一节点上运行,但这并不提供真实的冗余(如果节点发生故障,那么该块中的数据会丢失)。同时同一机架上服务器间的读取带宽是很高的。另一个极端,把复本放在不同的数据中心可以最大限度地提高冗余,但带宽的损耗非常大,即使在同一数据中心,也有许多不同的数据布局策略。

 

Hadoop的默认布局策略是在运行客户端的节点上放第1个复本,如果客户端运行在集群之外就随机选择一个节点,不过系统会避免挑选那些存储太满或太忙的节点。第2个复本放在与第一个不同且随机另外选择的机架中节点上(离架)。第3个复本与第2个复本放在同一机架上,且随机选择另外一个节点。其他复本放在集群中随机选择的节点上,不过系统会尽量避免在同一个机架上放太多的复本。

 

一旦选定复本的放置位置,就根据网络拓扑创建一个管线,如果复本为3,则有如图的管线。

总的来说,这一方法不仅提供很好的稳定性(数据块存储在两个机架中)并且实现很好的附在均衡,包括写入带宽(写入操作只需要遍历一个交换机),读取性能(可以从两个机架中选择读取)和集群中块的均匀分布(客户端只在本地机架上写入一个块)。

 

 

转载于:https://my.oschina.net/hunglish/blog/796645

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值