至HDFS上传文件。假定从datanode开始上传文件,上传的数据将导致目前的当务之急是全datanode圆盘。这是一个分布式程序的执行是非常不利。

解决方案:

1、从其他非datanode节点上传

可以hadoop文件夹复制一份到一个不在集群中的节点(直接从非datanode的namenode上传也能够,可是这样不太好。会添加namenode的负担。而且时间长了会让namenode上放了各种乱七八糟的文件),在这个节点上不启动不论什么hadoop进程,可是能够当作client使用。

上传文件到集群。

也能够自己写一个上传文件的程序、在其它非集群节点上执行来上传文件。在程序中要注意自己设置必要的配置,比方namenode的url、副本数等等,由于假设不设置,会使用你程序中所带的hadoop jar包中的默认配置,而不是集群的默认配置。


2、使用balancer

能够通过

hdfs balancer -threshold XX

来进行平衡,xx是一个百分比。

关于这个命令的使用方法网上一搜一大堆。

可是默认情况下,这个平衡时非常慢的,由于默认的hadoop不同意balancer占用非常大的网络带宽。

能够通过

hdfs dfsadmin -setBalanacerBandwidth newbandwidth

设置带宽,在字节

相关文章:

  • 2022-02-09
  • 2021-12-06
  • 2021-09-13
  • 2022-01-07
  • 2021-10-07
  • 2021-12-17
  • 2022-02-09
  • 2022-01-01
猜你喜欢
  • 2022-01-26
  • 2021-09-18
  • 2021-12-27
  • 2022-03-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案