设置hdfs副本数 dfs.replication

有个临时应用,使用临时调配的机器,机器磁盘差别数十倍。

在使用hadoop存储数据时导致小磁盘机器使用率达80%多,而大磁盘机器使用不过才10%多一点。

明显的hadoop集群各datanode空间使用率很不均衡,需要重新balance。于是想到了hdfs的均衡器balancer。

sbin/start-balancer.sh -threshold 10

但是在执行hdfs的balancer时会自动退出,不执行,也没有发现Error或者Warning。

但在out文件中可以看到一些信息:

balancer已经计算出要移动的数据量,但是就是没有移动,只是提示:

No block has been moved for 5 iterations. Exiting...

原来hadoop balancer在进行转移block的时候是会判断的:

*

The balancer automatically exits when any of the following five

* conditions is satisfied:

*

*

The cluster is balanced;

*

No block can be moved;

*

No block has been moved for five consecutive(连续) iterations;

*

An IOException occurs while communicating with the namenode;

*

Another balancer is running.

*

* 下面5种情况会导致Balance操作的失败

* 1、整个集群已经达到平衡状态

* 2、经过计算发现没有可以被移动的block块

* 3、在连续5次的迭代中,没有block块被移动

* 4、当datanode节点与namenode节点通信的时候,发生IO异常

* 5、已经存在一个Balance操作

显然是第三点问题了,log里显示执行了5次迭代但都每移动,应该是多副本的原因,迭代的block在大磁盘机器上都已经存在,那边都已经存在了,所以balancer移动进程就退出了。

不能执行均衡器了,那只有减少副本数了。

修改hdfs的副本数,首先想到的是修改hdfs-site.xml中的dfs.replication参数,默认为3,开始时设置成了2,现在索性修改为1,然后重启datanode命令:sbin/hadoop-daemon.sh start datanode

但似乎没有起作用,数据量没有变化,按理说应该大量数据减少才对啊。这又是为什么呢?

首先 dfs.replication这个参数是个client参数,即node level参数。需要在每台datanode上设置。

一个文件,上传到hdfs上时指定的是几个副本就是几个。以后你修改了副本数,对已经上传了的文件也不会起作用。可以在上传文件的同时指定创建的副本数。

如果你只有3个datanode,但是你却指定副本数为4,是不会生效的,因为每个datanode上只能存放一个副本。

啊,原来是这样,那就看下现在HDFS的副本数,并把它们都修改执行下,是不是有相应的hadoop shell命令呢?

Hadoop Commands和FileSystem Shell

http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/CommandsManual.html

http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSystemShell.html

执行 hadoop fsck /  查看整个目录的备份数分布,输出结果如下:

Default replication factor  2

Average block replication 2.38

修改hdfs文件备份系数:hadoop dfs -setrep [-R] 如果有-R将修改子目录文件的性质。

hadoop dfs -setrep -w 1 -R /user/hadoop/dir1 就是把目录下所有文件备份系数设置为1.

这个需要一些时间,感觉会扫描所有指定目录下的文件。

修改完已经存储的文件后,记得要修改以后放入的数据副本数,这个就要看client端了,如果client端有设置,一定要修改。

上面的都执行后如果还是不均衡,此时可以再执行hdfs的均衡器balancer。

个人感觉以上的只是出现问题时的一个解决方案,期望不要出现这样的问题,毕竟数据量大了操作会有很大的影响的。

我们应该对dfs.replication的数值做出很好的规划,尽量避免需要降低该数值的情况出现。

hdfs的副本数为啥增加了_设置hdfs副本数 dfs.replication相关推荐

  1. hdfs的副本数为啥增加了_HDFS详解之块大小和副本数

    1.HDFS HDFS : 伪分布式(学习) NN DN SNN sbin/start-dfs.sh(开启hdfs使用的脚本) bin/hdfs dfs -ls (输入命令加前缀bin/hdfs df ...

  2. hdfs的副本数为啥增加了_HDFS架构小结

    分布式文件系统 - Hadoop Distributed File System (HDFS)运行于通用硬件上的分布式文件系统,高吞吐,高可靠. HDFS架构 HDFS主要由NameNode.Seco ...

  3. 怎样在hdfs上创建多级目录文件夹_【HDFS API编程】第一个应用程序的开发-创建文件夹...

    /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 HDFS API的操作了 * ...

  4. HDFS概述(2)————Block块大小设置

    参考: HDFS概述(4)----HDFS权限 HDFS概述(3)----HDFS Federation HDFS概述(2)----Block块大小设置 HDFS概述(1)----HDFS架构 问题 ...

  5. 5、kubernetes Scale Up/Down在线增加或减少 Pod 的副本数、Failover故障转移、用 label(标签)控制 Pod 的位置

    伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数. Deployment nginx-app 初始是两个副本 [root@master ~]# kubectl apply -f ...

  6. 联想g510升级方案_联想集团副总裁阿木:智能化转型是VUCA 时代的成功路径 -联想 ——快科技(驱动之家旗下媒体)-...

    12月19日,国际组织发展与变革协会(ISODC)主办的中国第三届组织发展高管峰会在北京举办,联想集团副总裁.中国区战略及业务拓展副总裁阿不力克木.阿不力米提(以下简称阿木),在峰会上发表主题为< ...

  7. Ceph 创建/删除存储池、设置存储池副本数

    1.设置存储池副本数 $ ceph osd pool get cephrbd size $ ceph osd pool set cephrbd size 3 2. 打印存储池列表 $ ceph osd ...

  8. hdfs中8031是什么端口号_删了HDFS又能怎样?记一次删库不跑路事件

    一.事发背景 上个月的某一天,由于集群空间不足,公司有一位技术经理级别的大数据leader在通过跳板机在某个线上集群执行手动清理命令,疯狂地执行hadoop fs -rmr -skipTrash /u ...

  9. HDFS(下):NameNode和SecondaryNameNode、HDFS工作机制、故障处理、集群安全模式、服役退役节点、集群黑白名单、DataNode多目录详解、HDFS2.x新特性

    接上篇,上篇文章传送门:HDFS(上):HDFS优缺点.HDFS操作.HDFS客户端操作.HDFS的API.HDFS数据流.HDFS的IO流.HDFS读写数据流程.HDFS文件处理详解.windows ...

最新文章

  1. wxWidgets:wxDataInputStream类用法
  2. Oracle 数字与空值的排序问题
  3. [BZOJ3275]Number解题报告|网络流
  4. concurrency_Java Concurrency Essentials教程
  5. 删除python类中所有未使用的方法?
  6. vscode php函数提醒,解决vscode格式保存后出现的问题
  7. 【Java并发编程】3、DelayQueue应用场景,多考生考试
  8. matlab 取点画图,Matlab plot画图学习---画点以及两点连线
  9. cmd-ssh使用说明
  10. 五子课堂---第一课(连珠基础一)
  11. 智慧城市是如何用大数据建成的?
  12. C# 后台js重定向Response.Write
  13. 一文述说人工智能(AI)发展史,几经沉浮!
  14. 开发一个 app 有多难?
  15. 211逆袭浙大-计算机及相关衍生专业保研之路纪实(深度长文,收藏了)
  16. 互联网络彻底瘫痪的可能性研究
  17. python2和pytho3切换_电脑上同时安装Python2和Pytho
  18. java推送叮叮消息,叮叮叮!请及时签收入门学习Java导航路线
  19. Iass、Pass、Sass三种云服务有什么区别
  20. uni-app开发小程序app页面中获取globalData

热门文章

  1. visual2019没有勾选的在如何加入_没有预留期权池,如何激励新加入者?
  2. PSD分层高质量名片样机,完美展示商务身份
  3. 双11后,翘首盼快递物流素材模板,先来看看各快递公司的海报吧!
  4. UI设计实用素材|闪屏模板
  5. 如何查看bmp文件头_效率神器:史上最强最小文件搜索软件Everything!
  6. python安装opencv whl_Python 3.x 安装opencv+opencv_contrib的操作方法
  7. 如何理解高并发中的协程?协程的实现和历史
  8. php表达式求值,PHP实现基于栈的后缀表达式求值功能
  9. python pyqt教程_『开发技巧』PyQt5入门教程
  10. web root下放置图片_Apache HTTP存在提权漏洞,威胁共享Web主机安全性