<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 安装并启动 ...
 
随机推荐
- Oracl 12c (课本)
			
一.安装和部署:https://www.cnblogs.com/-xuan/p/10211387.html 二. (1)体系结构 Oracle体系结构 实例:实例是后台进程和内存的集合 数据库:数据库 ...
 - Problem F. Grab The Tree HDU - 6324
			
题意:给出一棵n个节点的树,每个节点有一个权值,Q和T玩游戏,Q先选一些不相邻的节点,T选剩下的节点,每个人的分数是所选节点的权值的异或和,权值大的胜出,问胜出的是谁. 题解: 话说,这题后面的边跟解 ...
 - php文件包含漏洞(利用phpinfo)复现
			
利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面 再访问http://192.168.80.156:8 ...
 - sparklyr-R语言访问Spark的另外一种方法
			
Connect to Spark from R. The sparklyr package provides a complete dplyr backend. Filter and aggregat ...
 - Oracle 常用sql整理
			
1. 查看当前正在只用的undo段 select s.sid, s.serial#, s.username, r.name, t.STATUS, t.START_TIME, t.USED_UBLK, ...
 - 【转】js生成接口请求参数签名加密
			
js生成接口请求参数签名加密 签名算法规则: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=v ...
 - 使用机器学习检测TLS 恶意加密流——业界调研***有开源的数据集,包括恶意证书的,以及恶意tls pcap报文***
			
2018 年的文章, Using deep neural networks to hunt malicious TLS certificates from:https://techxplore.com ...
 - 小程序BindTap快速连续点击页面跳转多次
			
原因: 手机端点击Tap基础事件解决300ms延迟 解决办法: success 里面加一个延迟300ms能解决 setTimeout goRob(e) { const that = this retu ...
 - PyCharm+Miniconda3安装配置教程
			
PyCharm是Python著名的Python集成开发环境(IDE) conda有Miniconda和Anaconda,前者应该是类似最小化版本,后者可能是功能更为强大的版本,我们这里安装Minico ...
 - CentOS下安装mysql5.7和mysql8.x
			
5.7和8.15版本亲测.centos版本为:CentOS-7-x86_64-Minimal-1810. 1.下载mysql57-community-release-el7-9.noarch.rpm. ...