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失效>的更多相关文章
-
How To Setup Apache Hadoop On CentOS
he Apache Hadoop software library is a framework that allows for the distributed processing of large ...
-
Hadoop 2.0 NameNode HA和Federation实践【转】
Hadoop 2.0 NameNode HA和Federation实践 Posted on 2012/12/10 一.背景 天云趋势在2012年下半年开始为某大型国有银行的历史交易数据备份及查询提供基 ...
-
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hive/warehouse/page_view. Name node is in safe mode
FAILED: Error in metadata: MetaException(message:Got exception: org.apache.hadoop.ipc.RemoteExceptio ...
-
hadoop错误FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOException There appears to be a gap in the edit log
错误: FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOExcep ...
-
Hadoop错误之namenode宕机的数据恢复
情景再现: 在修复hadoop集群某一个datanode无法启动的问题时,搜到有一个答案说要删除hdfs-site.xml中dfs.data.dir属性所配置的目录,再重新单独启动该datanode即 ...
-
启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.
一.现象 三台机器 crxy99,crxy98,crxy97(crxy99是NameNode+DataNode,crxy98和crxy97是DataNode) 按正常命令启动HDFS之后,HDFS一直 ...
-
Hadoop JobTracker和NameNode运行时参数查看
1)JobTracker运行时参数: hadoop@ubuntu:/home/zhangchao3$ ps -ef | grep job hadoop 29563 1 0 11:34 pts/12 ...
-
【Hadoop】Seondary NameNode不是备份NameNode!!
昨天和舍友聊天时无意中提起Secondary NameNode,他说这是备用NameNode.我当时就有点疑惑..之后查阅了相关资料和博客,算是基本理解了什么是Secondary NameNode. ...
-
HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException) 转载 2014年02月22日 14:40:58 96 ...
随机推荐
-
IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)
IntelliJ IDEA 乱码解决方案 (项目代码.控制台等) 最近IDE从eclipse改成IntelliJ IDEA 了,原因是公司大部分人都在用这个IDE,而且一直推荐用,所以尝尝鲜.换的第一 ...
-
使用Dom4j进行XML解析
1 概述 在进行ESB集成项目中,使用到了很多系统的接口,这些接口传输的数据大部分都采用了XML的格式,这样在使用ESB开发服务时就需要对XML数据进行解析或拼接的操作,本文以项目中流程服务为例,讲 ...
-
读javascript高级程序设计15-Ajax,CORS,JSONP,Img Ping
平时用惯了jQuery.ajax之类的方法,却时常忽略了它背后的实现,本文是学习了AJAX基础及几种跨域解决方案之后的一些收获. 一.AJAX——XMLHttpRequest 谈起Ajax我们都很熟悉 ...
-
Lua标准库(转)
转载地址:http://www.yiibai.com/lua/lua_standard_libraries.html Lua的标准库提供了一组丰富的功能,与C的API直接实现,建立在Lua编程语言函数 ...
-
【转】教你爱上Blocks(闭包)
Block 与传统代码相比较更加轻量,调用简洁方便,而且可以返回多个参数,使用Block可以让代码更加具有易读性,而我们在写回调时,也可以直接写在函数内部,而不用再去写一个回调函数 Block 闭包 ...
-
karma+jasmine自动化测试
1.安装nodejs,进入项目目录 2.安装karma和相关插件 npm install karma --save-dev npm install karma-jasmine karma-chrome ...
-
less学习笔记(一)
less的写法如下 .content { ul{ list-style: none; } li{ height: 25px; line-height: 25px; padding-left: 15px ...
-
Example008关闭IE窗口时,不弹出询问对话框
<!-- 实例008关闭IE主窗口时,不弹出询问对话框 --> <meta charset="UTF-8"> <a href="#" ...
-
解决mysql设置时区时的错误Unknown or incorrect time zone: &#39;Asia/Shanghai&#39;
Mysql默认时区格式是'+8:00'的格式,这个时区可以在my.ini中[mysqld]节点下设置 default-time-zone = '+8:00' 默认这个设置是没有的 但是mysql不支持 ...
-
SQL 字符串分割表函数
--字符串分割表函数 ) ) declare @i int; declare @count int; ); ); declare @Index int; )) declare @rowID int; ...