HDFS 上传文件不均衡和Balancer太慢的问题

向HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的。

解决的办法:

1、从其他非datanode节点上传

可以将hadoop的安装目录复制一份到一个不在集群中的节点(直接从非datanode的namenode上传也可以,但是这样不太好,会增加namenode的负担,并且时间长了会让namenode上放了各种乱七八糟的文件),在这个节点上不启动任何hadoop进程,但是可以当作客户端使用。上传文件到集群。

也可以自己写一个上传文件的程序、在其他非集群节点上运行来上传文件。在程序中要注意自己设置必要的配置,比如namenode的url、副本数等等,因为如果不设置,会使用你程序中所带的hadoop jar包中的默认配置,而不是集群的默认配置。


2、使用balancer

可以通过

hdfs balancer -threshold XX

来进行平衡,xx是一个百分比。关于这个命令的用法网上一搜一大堆。

但是默认情况下,这个平衡时非常慢的,因为默认的hadoop不允许balancer占用很大的网络带宽。

可以通过

hdfs dfsadmin -setBalanacerBandwidth newbandwidth

来设置带宽,单位是字节

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值