HDFS 上传文件不均衡和Balancer太慢的问题
2015-01-09 16:36
155 查看
向HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的。
解决的办法:
1、从其他非datanode节点上传
可以将hadoop的安装目录复制一份到一个不在集群中的节点(直接从非datanode的namenode上传也可以,但是这样不太好,会增加namenode的负担,并且时间长了会让namenode上放了各种乱七八糟的文件),在这个节点上不启动任何hadoop进程,但是可以当作客户端使用。上传文件到集群。
也可以自己写一个上传文件的程序、在其他非集群节点上运行来上传文件。在程序中要注意自己设置必要的配置,比如namenode的url、副本数等等,因为如果不设置,会使用你程序中所带的hadoop jar包中的默认配置,而不是集群的默认配置。
2、使用balancer
可以通过
[html] view
plaincopy
hdfs balancer -threshold XX
来进行平衡,xx是一个百分比。关于这个命令的用法网上一搜一大堆。
但是默认情况下,这个平衡时非常慢的,因为默认的hadoop不允许balancer占用很大的网络带宽。
可以通过
[html] view
plaincopy
hdfs dfsadmin -setBalanacerBandwidth newbandwidth
来设置带宽,单位是字节。这个值将覆盖dfs.balance.bandwidthPerSec参数。
注意:新值在DataNode上不是持久的。
解决的办法:
1、从其他非datanode节点上传
可以将hadoop的安装目录复制一份到一个不在集群中的节点(直接从非datanode的namenode上传也可以,但是这样不太好,会增加namenode的负担,并且时间长了会让namenode上放了各种乱七八糟的文件),在这个节点上不启动任何hadoop进程,但是可以当作客户端使用。上传文件到集群。
也可以自己写一个上传文件的程序、在其他非集群节点上运行来上传文件。在程序中要注意自己设置必要的配置,比如namenode的url、副本数等等,因为如果不设置,会使用你程序中所带的hadoop jar包中的默认配置,而不是集群的默认配置。
2、使用balancer
可以通过
[html] view
plaincopy
hdfs balancer -threshold XX
来进行平衡,xx是一个百分比。关于这个命令的用法网上一搜一大堆。
但是默认情况下,这个平衡时非常慢的,因为默认的hadoop不允许balancer占用很大的网络带宽。
可以通过
[html] view
plaincopy
hdfs dfsadmin -setBalanacerBandwidth newbandwidth
来设置带宽,单位是字节。这个值将覆盖dfs.balance.bandwidthPerSec参数。
注意:新值在DataNode上不是持久的。
相关文章推荐
- HDFS 上传文件不均衡和Balancer太慢的问题
- 【转载】HDFS 上传文件不均衡和Balancer太慢的问题
- HDFS 上传文件不均衡和Balancer太慢的问题
- HDFS 上传文件的不平衡,Balancer问题是过慢
- HDFS文件上传:8020端口拒绝连接问题解决!
- FTP压缩文件上传到HDFS大小不一致的问题说明(FTP传输模式)
- 解决从本地文件系统上传到HDFS时的权限问题
- Nginx的负载均衡的那点事-session和文件上传下载问题
- hdfs客户端上传文件追加出现的问题:
- 上传到hdfs文件所属问题
- HDFS文件上传:8020端口拒绝连接问题解决!
- 关于通过Eclipse上传文件到HDFS文件为空的问题
- eclipse 通过插件向hdfs上传文件遇到一个很坑的问题
- Nginx的负载均衡的那点事-session和文件上传下载问题
- 解决从linux本地文件系统上传文件到HDFS时的权限问题
- 解决从本地文件系统上传到HDFS时的权限问题
- 上传到HDFS上的文件遇到乱码问题
- hdfs上传文件大小为零问题解决
- Hadoop HDFS 文件访问权限问题导致Java Web 上传文件到Hadoop失败的原因分析及解决方法
- [导入]WebbUpload 1.1.0.0上传组件(解决.net下大文件上传问题)