博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录 一次深夜救火:datanode.data.dir
阅读量:4572 次
发布时间:2019-06-08

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

火灾背景:

Hadoop集群,4个节点,每一台配置都不一样

火灾现场:

1.突然发现DN4硬盘报警,检查硬盘,发现挂载如下:
/home 200GB
/home/data 3TB
然后发现datanode.data.dir=/home/data1,/home/data2,/home/data3,/home/data4,/home/data5
所以问题出来了:硬盘挂载和DataNode.dir不一致,空间浪费了,反而把/home撑爆了。

2.还有个现象:DN4数据盘挂载点是/home/data,DN2和DN3的挂载点是/home/data1

这个还不一致,为了datanode.data.dir配置一致,这个也需要解决

解决问题的考量:

1.如何保证HDFS现有数据不丢失?
想了好几种方法,都有一定概率造成datanode需要重装,那么数据如何保留?
因此第一步开始备份数据,找了个硬盘大的目录,直接将全部数据get到本地。(超慢,300GB数据用了近2小时)

2.如何保证DN2,DN3,DN4的硬盘挂载都用上,不浪费?

DN2的挂载:
/home 600GB
/home/data1 4TB
/home/data2 11TB
/home/data3 11TB

DN3的挂载:

/home 600GB
/home/data1 6TB

DN4的挂载:

/home 200GB
/home/data 2TB

存在几个问题:

1)DN4的挂载点是/home/data,和其他的/home/data1不一致
2)DN2的/home/data2,/home/data3如何不浪费?

因此使用了下面的方法:

DN2:在/home/data2中:

\cp -rp /home/data4 /home/data2/data4,rm -rf /home/data4,ln -s /home/data2/data4 /home/data4\cp -rp /home/data5 /home/data3/data5,rm -rf /home/data5,ln -s /home/data3/data5 /home/data5

在DN3中:

\cp -rp /home/data2 /home/data1/data2,rm -rf /home/data2,ln -s /home/data1/data2 /home/data2\cp -rp /home/data3 /home/data1/data3,rm -rf /home/data3,ln -s /home/data1/data3 /home/data3\cp -rp /home/data4 /home/data1/data4,rm -rf /home/data4,ln -s /home/data1/data4 /home/data4\cp -rp /home/data5 /home/data1/data5,rm -rf /home/data4,ln -s /home/data1/data5 /home/data5

在DN4中:

\cp -rp /home/data1 /home/data/data1,rm -rf /home/data1,ln -s /home/data/data1 /home/data1\cp -rp /home/data2 /home/data/data2,rm -rf /home/data2,ln -s /home/data/data2 /home/data2\cp -rp /home/data3 /home/data/data3,rm -rf /home/data3,ln -s /home/data/data3 /home/data3\cp -rp /home/data4 /home/data/data4,rm -rf /home/data4,ln -s /home/data/data4 /home/data4\cp -rp /home/data5 /home/data/data5,rm -rf /home/data5,ln -s /home/data/data5 /home/data5

3.datanode.data.dir配置到底应该怎么配?

目前datanode.data.dir=/home/data1,/home/data2,/home/data3,/home/data4,/home/data5
在完成了上面的软链接后,其实能发现这里已经不需要改了

总结注意事项:

1.进行本地目录软链接前,关闭集群服务,否则会出现找不到目录引起各种报错
2.拷贝目录其实可以换成mv,反而更方便。cp命令使用时,必须带p参数,保存属性,避免权限出错。
3.胆大心细,有了数据备份,最差就重装,有想法先实践

转载于:https://www.cnblogs.com/music378/p/9836044.html

你可能感兴趣的文章
【bzoj1270】[BeijingWc2008]雷涛的小猫 dp
查看>>
35.Docker安装Mysql挂载Host Volume
查看>>
ring buffer 亲测好用 C++ 11
查看>>
大型网站架构系列:电商网站架构案例(3)
查看>>
java 延时的几种方法方法
查看>>
数据库工具
查看>>
Windows 10 的 cmd 漂亮又实用
查看>>
android Launcher源码解析07:Workspace 02——设置壁纸
查看>>
深入聊聊Java多线程
查看>>
Android Http 下载
查看>>
碰撞器Colider 触发器
查看>>
Golang闭包案例分析与普通函数对比
查看>>
C#文件操作
查看>>
java多线程的三种实现方式
查看>>
【pyhon】理想论坛爬虫1.08
查看>>
T端阵营修改
查看>>
Generative Adversarial Nets[content]
查看>>
【机房收费个人版】触发器与存储过程
查看>>
网络协议之Tcp、Http
查看>>
getText() 获取properties中的变量
查看>>