博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从Hadoop集群中移除一块磁盘的操作
阅读量:6969 次
发布时间:2019-06-27

本文共 889 字,大约阅读时间需要 2 分钟。

hot3.png

背景

由于历史原因,CDH的hadoop的每个DataNode节点下挂载了多个磁盘,后要对一些配置差的磁盘要用配置较好的新磁盘进行替换,这时候就需要撤出旧磁盘,并保证数据不丢失的情况下更换磁盘。

在更换磁盘的过程可能会遇到如下情况,有些磁盘的使用量特别大,已经块占满,而有些磁盘的使用量较少,但是hdfs在写入数据时默认还是向使用量比较的磁盘中写入数据,这样就会导致有些磁盘会提前爆满的现象;对于这样的问题,可以从如下两个角度解决问题,第一,在挂载磁盘的时候,给每个磁盘都设置预留空间;第二,通过修改hdfs使用磁盘的规则,使用hdfs优先使用磁盘空间较大的磁盘。

 
方案
移除的动作不能直接从集群中移除,因为数据还存放在这些磁盘中。我们知道,hadoop默认是3份副本,移除一块或者两块磁盘,数据是不会丢失的。为了保险起见,我们一块一块操作,移除一块之后,会有若干副本丢失。
 
步骤
1.   停止CDH集群
2. 先从一个节点开始,比如从slave-01上,先将dfs.data.dir, dfs.datanode.data.dir这个配置中,删除/data/dfs/dn, 只保留/data1/dfs/dn和/data2/dfs/dn
3. 重启集群
4. 打开网页http://master-02:50070/fsck, 会开始检查数据副本的情况。最后有一个检查报告,提示block损坏的情况,和副本的丢失情况。因为已经删除一个磁盘,可能会有很多数据只有2个副本。有的临时的jar文件,由于副本数被设置为1,所以会丢失,不过这些是Mapreduce临时生成的文件,不影响数据的完整性。
5. 运行hadoop fs -setrep -w 3 -R /, 重新生成副本, 如果中途出现out of memory,则重新运行该命令即可
6. 查看检查报告看看有哪些目录的数据丢失,是否无关数据,删除这些无关数据:hadoop fsck <目录> -delete
7. 重复步骤2-6

转载于:https://my.oschina.net/u/3197158/blog/1601649

你可能感兴趣的文章
AI技术落地医疗搜索 搜狗明医独家首推“湿疹痱子识别”功能
查看>>
中国又一项技术让世界叹服,世界500强抢着合作!
查看>>
年薪百万都招不来人,AI与区块链的技术人才有多稀缺?|技术大会
查看>>
一起撸个朋友圈吧 - 重构
查看>>
图片懒加载
查看>>
「面经:面试 ThoughtWorks | 掘金技术征文」
查看>>
Android和iOS开发中的异步处理(四)——异步任务和队列
查看>>
iOS开发之 Autolayout 详解
查看>>
ijkplayer如何使用FFmpeg 4.0内核?
查看>>
HBase2.0中的Benchmark工具 — PerformanceEvaluation
查看>>
基于 Docker 打造前端持续集成开发环境
查看>>
[case1]记一次spring schedule异常
查看>>
五分钟了解微服务
查看>>
Android从零开始(第四篇)网络框架MVP+Retrofit+Rxjava
查看>>
Android逆向从未如此简单
查看>>
从Android Studio 开始的ARCore之旅
查看>>
Android轮播图控件CustomBanner的使用讲解
查看>>
让你在服务器上顺风顺水——linux常用命令
查看>>
[iOS] [OC] NSNotificationCenter 进阶及自定义(附源代码)
查看>>
Python logging 库的『完整教程』
查看>>