zoukankan      html  css  js  c++  java
  • 【转载】HDFS 上传文件不均衡和Balancer太慢的问题

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

    解决的办法:

    1、从其他非datanode节点上传

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

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

    2、使用balancer

    可以通过 :

    1. hdfs balancer -threshold XX  

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

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

    可以通过 :hdfs dfsadmin -setBalanacerBandwidth newbandwidth

    来设置带宽,单位是字节。这个值将覆盖dfs.balance.bandwidthPerSec参数。

    注意:新值在DataNode上不是持久的。

  • 相关阅读:
    关于TCP中对于ACK报文是否需要确认的理解
    定时器
    几个错误
    C++继承与组合
    Ubuntu18的Redis: 4.0安装
    Ubuntu18.04:MySQL: 5.7安装与卸载并配置远程登录(服务器装Mysql5.7一条龙服务)
    Ubuntu18服务器修改字体大小
    Ubuntu修改系统时间
    Ubuntu18.04防火墙安装关闭开启操作等
    Ubuntu阿里云镜像源配置
  • 原文地址:https://www.cnblogs.com/conanwang/p/5864229.html
Copyright © 2011-2022 走看看