hadoop集群负载均衡以及配置方法

hadoop集群负载均衡以及配置方法

2023年7月19日发(作者:)

hadoop集群负载均衡以及配置⽅法 ⼀个良好的hadoop集群应该是数据均匀的分布在各个节点上,⽽不是⼀个节点磁盘都满了,⽽另⼀个磁盘使⽤率才不到10%,这⾥简单介绍⼀下hadoop数据存储的原理以及如何保证数据均匀的分布在各个节点上。 本地数据上传hdfs存储流程: 第⼀块副本:⾸先集群会判断该上传主机是不是DataNode,如果是DataNode,并且空间够⽤的情况下,会⾸先把数据存储在本DataNode上(重点),如果上传主机不是DataNode,则会找个磁盘不太慢的节点进⾏数据存储 第⼆块副本:如配置机架并在配置⽂件中进⾏指定,则第⼆块副本会存储在不同的机架的磁盘空间富⾜的节点上,如未配置机架,会随机找⼀个磁盘空间富⾜的节点进⾏数据存储 第三块副本:按照第⼆块副本存储的机制进⾏存储

到这⾥⼤家就会发现问题了,对于⽣产集群来说,为了提⾼主机的利⽤率,⼀般上传数据节点⼀般也有DataNode的功能,这样问题就来了,对于⽇复⼀⽇的数据传输来说,上传数据的DataNode数据存储磁盘使⽤率肯定很⾼,⽽且就算上传数据主机⾮DataNode,但对于任务繁重的hadoop集群来说,⼤量的数据导⼊和数据清理都会导致各个节点上数据的失衡。 那么问题来了,就算我的集群数据不均衡,⼜有什么影响呢? ⼤家都知道hadoop集群在进⾏计算时使⽤的是mr,集群数据的不均衡,就⽆法利⽤mr本地化计算的,就是对于主机A来说,运⾏的map任务需要的数据不在主机A上,在主机B上,那么就要进⾏跨节点的数据读取,肯定⼀定程度上减缓了任务的执⾏效率,尤其对于磁盘使⽤率达到100%的节点来说,甚⾄导致任务失败。 为了防⽌集群数据的不均衡,集群资源不能充分利⽤,所以hadoop中存在数据均衡机制(以下简称:balancer),启动balancer任务后集群会⾃动读取各个节点磁盘使⽤情况,根据设置的主机空间使⽤率差值来进⾏计算,从远超该平均值的节点数据开始往空间使⽤率低于该平均值的主机开始进⾏数据复制,复制完成之后删除原节点数据,因为数据的复制传输会占⽤磁盘IO,所以为了不影响集群正常提供服务,该复制传输效率低下,通过配置⽂件可以设置,如集群数据变化量不⼤,使⽤默认值,如数据均衡速度达不到要求,可修改该配置⽂件以下参数进⾏修改:1.

2. dthPerSec

3. 1048576 =>1M/s

4.

数据均衡的配置: 在任意⼀集群节点上使⽤ hadoop balancer -Threshold 10 命令即可进⾏集群数据的均衡,英⽂不解释,对于参数10,代表的是集群中各个节点的磁盘空间利⽤率相差不超过10%,可根据实际情况进⾏调整。 定时任务的设置: 知道数据均衡的⽅法了,但总不能我每天盯着看吧,⽽且今天数据均衡了,但是明天来新的数据导致失衡怎么办,那就⽤到了定时任务,⼤家可根据集群的数据变化量来进⾏定时任务的执⾏,例如:我们公司集群周末没⼈⽤,那我可以把时间设置为周五晚上,或者我们公司每⽉⽉初有⼤量数据导⼊,我可以把数据均衡时间设置在数据导⼊完毕之后,以下附带⼀个简单的每周周五晚上10点进⾏数据均衡的crontab设置:00 22 * * 5 hadoop balancer -Threshold 5 >>/home/zcb/log/balancer_`date +"%Y%m%d"`.log 2>&1纯⼿⼯敲打,希望点赞评论谢谢!

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689744400a282787.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信