记录 一次深夜救火:datanode.data.dir
火灾背景:
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的更多相关文章
- 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 ...
- hadoop datanode启动失败(All directories in dfs.data.dir are invalid)
由于hadoop节点的磁盘满了,导致节点死掉,今天对其进行扩容.首先,将原节点的数据拷贝到目标节点下,从而避免数据的丢失,但是在执行hadoop_daemon.sh start datanode后没有 ...
- HDFS读写数据块--${dfs.data.dir}选择策略
最近工作需要,看了HDFS读写数据块这部分.不过可能跟网上大部分帖子不一样,本文主要写了${dfs.data.dir}的选择策略,也就是block在DataNode上的放置策略.我主要是从我们工作需要 ...
- 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 ...
- 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 ...
- 记录一下我做Udacity 的Data Scientist Nano Degree Project
做项目的时候看了别人的blog,决定自己也随手记录下在做项目中遇到的好的小知识点. 最近在做Udacity的Data Scientist Nano Degree Project的Customer_Se ...
- hbase centOS生产环境配置笔记 (1 NameNode, 1 ResourceManager, 3 DataNode)
本次是第一次在生产环境部署HBase,本文若有配置上的不妥之处还请高手指正. hadoop版本:hadoop-2.4.1 HBase版本:hbase-0.98.6.1-hadoop2 Zookeepe ...
- 懒人记录 Hadoop2.7.1 集群搭建过程
懒人记录 Hadoop2.7.1 集群搭建过程 2016-07-02 13:15:45 总结 除了配置hosts ,和免密码互连之外,先在一台机器上装好所有东西 配置好之后,拷贝虚拟机,配置hosts ...
- hadoop中datanode无法启动
一.问题描述 当我多次格式化文件系统时,如 [hadoop@xsh hadoop]$ ./bin/hdfs namenode -format 会出现datanode无法启动,查看日志(/usr/loc ...
随机推荐
- Storm 使用手册
一.Storm相关术语: Nimbus: Storm集群主节点,负责资源的分配和任务的调度 Supervisor:Storm集群工作节点,接受Nimbus分配的任务,管理Worker Worker:S ...
- HTTP常用头部信息
下面用例子的形式来记录下常用的一些Http头部信息 Request Header: GET /sample.Jsp HTTP/1.1 //请求行 Host: www.uuid.online/ // ...
- 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结
20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
- Centos7使用kubeadm 安装多主高可用kubernets:v.1.11集群
实验环境介绍: 本次实验环境是5个节点 3台master 2台node节点: k8smaster01 192.168.111.128 软件:etcd k8smaster haproxy keepali ...
- SpringBoot笔记十七:热部署
目录 什么是热部署 Devtools热部署 什么是热部署 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用. 举个例子,王者荣耀的更新有时候就是热部署,热更新,就是他提示你更新,更新40 ...
- angular学习一框架结构认识
angular学习所有内容均会与vue以及react框架进行对比. angular学习使用的编译器:webstorm 解决编译器屏蔽node_modules包问题: File-->setting ...
- ruby----controller中简单的增删改 方法定义
class WorkProsController < ApplicationController before_action :set_work, only: [:show, :edit, :u ...
- Jpush极光推送
require 'jpush' class SidkiqJpushWorker include Sidekiq::Worker # args[0] msg : args[1] region_id ; ...
- mysql关联模糊查询他表字段
如下:订单表关联了用户的id(多个),要根据用户名模糊查询订单信息,但是订单表只有id.创建视图用不着,咱也没权限.于是如下 SELECT * FROM ( SELECT cu.id AS 'id', ...
- js取指定范围随机值【原】
js取指定范围随机值 <HTML> <HEAD> <meta http-equiv="content-Type"content="text/ ...