hadoop 之 hadoop2.7.7升级到hadoop2.8.5
服务器规划
准备阶段
停服务
stop-yarn.sh
stop-dfs.sh
备份
备份NameNode目录
---------- 101,102操作 -----------------
hdfs-site.xml中的 dfs.namenode.dir
vi /app/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/app/hadoop-2.7.7/tmp/name</value>
</property>
mkdir /app/bak-hadoop-2.7.7
cd /app/bak-hadoop-2.7.7
cp -r /app/hadoop-2.7.7/tmp/name ./
备份journal
--101,102,103 操作 --
hdfs-site.xml中的 dfs.journalnode.edits.dir
vi /app/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop-2.7.7/tmp/journal</value>
</property>
cd /app/bak-hadoop-2.7.7
cp -r /app/hadoop-2.7.7/tmp/journal ./
安装新版本的Hadoop
---------- 101操作 -----------------
解压
cd /app
tar -zxvf hadoop-2.8.5.tar.gz
分发到其他机器(可以先删除hadoop-2.8.5/share/doc文件夹)
for i in 192.168.100.{102..107};do echo "=======$i=======";scp -r /app/hadoop-2.8.5 $i:/app/;done
hdfs-site.xml添加滚动升级配置
------------- 101 操作 --------------------
vi /app/hadoop-2.8.5/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.duringRollingUpgrade.enable</name>
<value>true</value>
</property>
分发到其他机器
for i in 192.168.100.{102..107};do echo "=======$i=======";scp /app/hadoop-2.8.5/etc/hadoop/hdfs-site.xml $i:/app/hadoop-2.8.5/etc/hadoop/;done
修改环境变量
HADOOP_HOME改为hadoop-2.8.5的安装目录
vi ~/.bash_profile
export HADOOP_HOME=/app/hadoop-2.7.7 修改为 export HADOOP_HOME=/app/hadoop-2.8.5
分发到其他机器
for i in 192.168.100.{102..107};do echo "=======$i=======";scp ~/.bash_profile $i:~/;ssh $i "source ~/.bash_profile"; done
验证环境变量是否生效
which hadoop
~/app/hadoop-2.8.5/bin/hadoop
滚动升级
启动Hadoop2.7.7 hdfs
/app/hadoop-2.7.7/sbin/start-dfs.sh
创建用于回滚的fsimage
/app/hadoop-2.7.7/bin/hdfs dfsadmin -rollingUpgrade prepare
检查回滚映像状态
/app/hadoop-2.7.7/bin/hdfs dfsadmin -rollingUpgrade query
关闭hadoop2.7.7的namenode和datanode
---- 101,102 操作 -----
/app/hadoop-2.7.7/sbin/hadoop-daemon.sh stop namenode
---- 104,105,106,107 操作 -----
/app/hadoop-2.7.7/sbin/hadoop-daemon.sh stop datanode
启动hadoop2.8.5的namenode
在新版本的hadoop使用“-rollingUpgrade started”选项启动namenode
---- 101,102 操作 -----
/app/hadoop-2.8.5/sbin/hadoop-daemon.sh start namenode -rollingupgrade started
启动hadoop2.8.5的ResourceManager
---- 102,103 操作 -----
/app/hadoop-2.8.5/sbin/yarn-daemon.sh start resourcemanager
启动resourcemanager报错:
java.io.FileNotFoundException: /tmp/ats/entity-file-history/active does not exist
解决:
在hdfs上创建目录/tmp/ats/entity-file-history/active
Hadoop fs –mkdir –p /tmp/ats/entity-file-history/active
完成滚动升级
/app/hadoop-2.7.7/bin/hdfs dfsadmin -rollingUpgrade finalize
最新文章
- Android-Spinner [使用C# And Java实现]
- codeforces 711E. ZS and The Birthday Paradox 概率
- [ruby on rails] 跟我学之(4)路由映射
- PHP 中替换若干字符串字串为数组中的值,不用循环,非常高效
- Ubuntu配置网络命令(转载)
- when not exists 用法
- iOS 简单总结:description方法\NSLog函数
- 构造函数继承关键apply call
- coffee 编译时, 用本地环境
- Android应用的基本组件介绍和签名Android应用程序
- HTML5 语义元素、迁移、样式指南和代码约定
- Java获取http和https协议返回的json数据
- bugku 逆向 love
- centos7防火墙导致不能访问的
- Python-form表单标签
- 活代码LINQ——04
- Ex 2_27 矩阵A的平方是A自乘后的乘积,即AA..._第三次作业
- 让IIS6支持任意扩展名和未知扩展名的下载
- fckeditor配置
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink--容错机制(ACK,RDD,基于log和状态快照),消息处理at least once,exactly once两个是关键
热门文章
- 实现new Date(), 获取当前时间戳
- pop和push等使用方法,every和some、join
- 转:KVC 与 KVO 理解
- CF808A Lucky Year 题解
- python3 5月26日 time模块常用时间转换 &;datetime()模块学习 random()
- 常用故障排查监控shell脚本
- 在程序出现问题,当找不到错误时,第一时间用try ,catch包括起来
- windows平台使用 pthreads库
- VS c/c++常用配置项
- 【LeetCode】270. Closest Binary Search Tree Value 解题报告(C++)