HDFS的写操作策略

28 篇文章 0 订阅

量了一下4datanode时候HDFS写操作时每个node分配block的情况,每个datanode4disk,写了个脚本处理log后发现平均每个node分配的block数量占写的block总数量的25%,而每个node上的每个disk又分到了25%block数目。因此,HDFS的写分配算法相对在我这个cluster上还是均匀的。

 

具体看了一下code,选datanode的算法是chooseTarget,这个是大家熟知的了,比如replication3的情况,就是选一个local,然后同一个rack的另外一个node,然后是另外一个rack的一个node,这些选择是随机的了。

disk(或者说选block file的目录),则是round-robin的了。

 

因此有个疑问就是现在这种算法对现在这样每个node的每个diskio能力是一样的效果会比较好,那如果不一样呢,比如一些node的某些diskSD,相对IO处理会快,那么理想中就应该给该node或者该SD分配较多的block写操作,现在的算法就太一视同仁了,能力强的得不到利用,能力差的分配到一样多的任务。

但不可否认,现在的算法是最简洁的,Simple is beauty。如果要namenode选择datanode的时候知晓备选的datanode上当前写任务是否繁重的情况也比较难吧。

 

当然,也会有人说,如果某datanode能力强,按照你理想中的应该分配较多的写,那么这个device不就很快歇菜了……我也没办法,只能说更看重什么吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值