火灾背景:

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.胆大心细,有了数据备份,最差就重装,有想法先实践

记录 一次深夜救火:datanode.data.dir的更多相关文章

  1. Hadoop Datanode节点无法启动(All directories in dfs.data.dir are invalid)

    Hadoop Datanode节点无法启动(All directories in dfs.data.dir are invalid) java.io.IOException: All director ...

  2. hadoop datanode启动失败(All directories in dfs.data.dir are invalid)

    由于hadoop节点的磁盘满了,导致节点死掉,今天对其进行扩容.首先,将原节点的数据拷贝到目标节点下,从而避免数据的丢失,但是在执行hadoop_daemon.sh start datanode后没有 ...

  3. HDFS读写数据块--${dfs.data.dir}选择策略

    最近工作需要,看了HDFS读写数据块这部分.不过可能跟网上大部分帖子不一样,本文主要写了${dfs.data.dir}的选择策略,也就是block在DataNode上的放置策略.我主要是从我们工作需要 ...

  4. How to change data dir of mysql?

    # 1 copy orgin data dir of mysql to new one cp -R /var/lib/mysql /mysqldata chown mysql:mysql -R /my ...

  5. cassandra删除所有数据,重置为初始状态——删除<data dir>/data/* <data dir>/commitlog/* <data dir>/saved_caches/* 重启cassandra即可

    Are you looking for a method other than drop keyspace? Okay based on your clarification... I would s ...

  6. 记录一下我做Udacity 的Data Scientist Nano Degree Project

    做项目的时候看了别人的blog,决定自己也随手记录下在做项目中遇到的好的小知识点. 最近在做Udacity的Data Scientist Nano Degree Project的Customer_Se ...

  7. hbase centOS生产环境配置笔记 (1 NameNode, 1 ResourceManager, 3 DataNode)

    本次是第一次在生产环境部署HBase,本文若有配置上的不妥之处还请高手指正. hadoop版本:hadoop-2.4.1 HBase版本:hbase-0.98.6.1-hadoop2 Zookeepe ...

  8. 懒人记录 Hadoop2.7.1 集群搭建过程

    懒人记录 Hadoop2.7.1 集群搭建过程 2016-07-02 13:15:45 总结 除了配置hosts ,和免密码互连之外,先在一台机器上装好所有东西 配置好之后,拷贝虚拟机,配置hosts ...

  9. hadoop中datanode无法启动

    一.问题描述 当我多次格式化文件系统时,如 [hadoop@xsh hadoop]$ ./bin/hdfs namenode -format 会出现datanode无法启动,查看日志(/usr/loc ...

随机推荐

  1. 剑指Offer_编程题_8

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number ...

  2. python 深浅拷贝 for循环删除

    ###########################总结########################### 1. 基础数据类型补充 大多数的基本数据类型的知识.已经学完了 a='aaaa' ls ...

  3. CSS3笔记4

    1.CSS3盒子模型 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  4. HDU 1052(田忌赛马 贪心)

    题意是田忌赛马的背景,双方各有n匹马,下面两行分别是田忌和齐王每匹马的速度,要求输出田忌最大的净胜场数*每场的赌金200. 开始的时候想对双方的马匹速度排序,然后比较最快的马,能胜则胜,否则用最慢的马 ...

  5. stat/lstat函数使用

    1. 进程虚拟地址空间 2. stat函数 获取文件信息 #include <sys/types.h> #include <sys/stat.h> #include <u ...

  6. wav音频文件格式解析【个人笔记】(自用)

    1. WAV格式 wav是微软开发的一种音频文件格式,注意,wav文件格式是无损音频文件格式,相对于其他音频格式文件数据是没有经过压缩的,通常文件也相对比较大些.. 支持多种音频数字,取样频率和声道, ...

  7. PHP7 网络编程(三)孤儿进程与僵尸进程

    基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程.子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 当一个 ...

  8. NodeJs 学习笔记(一)Wedding 项目搭建

    说明:Ubuntu16.04 自带的NodeJs版本太低,安装包更新不了,只能编译安装了 一.NodeJs编译安装 下载:https://nodejs.org/en/download/ 修改目录权限: ...

  9. React Native的语法之ES5和ES6

    原文地址:http://www.devio.org/2016/08/11/React-Native%E4%B9%8BReact%E9%80%9F%E5%AD%A6%E6%95%99%E7%A8%8B- ...

  10. 百度编辑器 ueditor 会屏蔽过滤 body html head DOCTYPE ... 的解决办法

    百度编辑器很强,但有时候复制到html里时,会带有 body  html head 等标签,切到视图时,内容都不见了 是因为白名单 解决办法: 我测的是1.4.3版本 在 ueditor.config ...