您的位置:首页 > 运维架构 > 网站架构

LVS+Keepalived DR模式实现web负载均衡高可用

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

 

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

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

 

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

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

 

当然,也会有人说,如果某datanode能力强,按照你理想中的应该分配较多的写,那么这个device不就很快歇菜了……我也没办法,只能说更看重什么吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: