<Hadoop重装><centos><NameNode失效>
Overview
记一次真真切切的NameNode单点故障。
学校机房着火之后,刀片机上的四台服务器,唯独就NameNode彻底宕掉了,去机房看了下硬盘都坏了。。
所以只能换一个master咯。基本上改一些配置文件就可以。要修改的配置如下:
core-site.xml
yarn-site.xml
mapred-site.xml
masters
slave
本以为修改完了,格式化一下新的NameNode,在start-dfs.sh和start-yarn.sh就可以了。结果进web页面发现datanode全是failed的。
曾经的血泪指引着我去看了下df -h,结果果然hadoop所在的那个分区,已经99%了。
磁盘挂载
说到这个磁盘挂载,就忍不住吐槽,我们这个服务器的磁盘不知道是谁挂的。
[root@host99 /home/hadoop-2.6.2]$df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 50G 15G 33G 32% /
tmpfs 32G 216K 32G 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
/dev/sdb1 551G 198M 523G 1% /var/lib/mysql
/dev/sda6 399G 199M 378G 1% /var/lib/mysql/usbsda6
把两个超大的磁盘全都挂到mysql路径下是想怎样。。。
于是强迫症忍不了了,总不能让我把hadoop装到mysql路径下吧,况且多个服务器的大磁盘挂载的路径还完全不一样???
于是,重新挂载,这个时候我脑子也坑了,我想把/usr挂到/dev/sda6上面,但是我直接umount再mount了,也修改了/etc/fstab,但是我忘记备份/usr数据了。。。
mkdir /new ###跳板目录 mount /dev/sdb1 /new ###首先挂载跳板目录 cp -R /home/* /new ###复制/home目录所有数据到/new先 rm -rf /home/* ####可选,主要为了腾出空间给原来的硬盘
我应该先挂一个空目录上去的。这一切都是因为Linux的VFS(虚拟文件系统)机制导致的,正常登录以后,所看到的各个目录,文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接看到硬盘上的实际目录树。当你挂载某个设备到一个VFS挂载点上时(比如/home),系统就把VFS中的这个挂载点/home指向你最后所挂载的那个设备上。那么你现在访问该挂载点时,就会看到你最后挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点/home已经不再指向之前的设备。所以之前的数据是被隐藏了,但并没有删除,若umount挂载后,数据又重新回来了。
移动Hadoop
- 为了利用重新挂载的空间,我移动了hadoop的安装路径。因此修改各种配置,基本上跟重装没什么区别了。
- 首先是hadoop的环境变量, /etc/profile
export HADOOP_INSTALL=/home/hadoop-2.6.2 export PATH=$PATH:$HADOOP_INSTALL/bin
#export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
然后这样which hadoop就没问题了。因为我其实最后才做这步,所以导致在启动的时候报错:找不到或无法加载主类:xxx
- 修改各种配置文件
- core-site.xml 主要是修改tmp.dir的位置。tmp.dir是临时的本地目录,而且缺省情况下mapred.system.dir被设置成"${hadoop.tmp.dir}/mapred/system"。所以tmp.dir是很多临时文件的根目录。包括dfs.name.dir(存放namenode原数据的地址)缺省是${hadoop.tmp.dir}/dfs/name;dfs.data.dir(存放HDFS block的地址)缺省是${hadoop.tmp.dir}/dfs/data;fs.checkpoint.dir(secondaryNameNode存放checkponits的地址)缺省是${hadoop.tmp.dir}/dfs/namesecondary。
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop-2.6.2/tmp</value>
<description>Abase for other temporary directories.</description>
</property>- hdfs-site.xml: 主要是修改上面提到的dfs.name.dir和dfs.data.dir。其实如果保持缺省的话这个文件就不用改了。
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop-2.6.2/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop-2.6.2/dfs/data</value>
- 格式化NameNode: hadoop namenode -format 清空整个文件系统,也就是清空目录树,即原数据。所有关于dataNode的元数据都会丢失。
Finally
- 终于一切正常了。关于Hive和Spark的配置更改用的时候再说吧- -。 心累
<Hadoop重装><centos><NameNode失效>的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 第三周学习进度条+PSP0过程文档
第三周学习进度条 第三周 所花时间(包括上课) 14:30-15:35(65)+19:00-21:20(140)+17:52-19:00(68)+19:10-20:45(95)+21:00-22 ...
- Matlab-11:Gausssidel迭代法工具箱
算法推导: function [u,n]=GaussSeid(A,b,u0,eps,M) %GaussSeid.m为用高斯-塞德尔迭代法求解线性方程组 %A为线性方程组的系数矩阵 %b为线性方程组的常 ...
- php开启redis
看下自己phpinfo的信息 php 5.5以下的都有这些文件 到这个地方下载所需要的文件:https://github.com/nicolasff/phpredis/downloads 下载解压 ...
- Echarts 简单报表系列三:饼状图
代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- noip2017奶酪
题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞.我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上 ...
- CentOS和AIX查看系统序列号
一.CentOS查看系统序列号 dmidecode -t dmidecode--将DMI数据库中的信息解码,以可读的文本方式显示:该命令需要root权限. -t 1--DMI数据库包含包括BIOS.系 ...
- Eclipse导出WAR包
参考: https://jingyan.baidu.com/article/ab0b56309110b4c15afa7de2.html
- shiro学习笔记-Subject#login(token)源码实现过程
追踪Subject的login(AuthenticationToken token)方法,其调用的为DelegatingSubject类的login方法,DelegatingSubject实现了Sub ...
- jsp 内置对象(五)
1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...
- vertical-align属性测试实验面板 文字 图片对齐
转自:http://www.zhangxinxu.com/study/201005/verticle-align-test-demo.html