服务器规划

准备阶段

停服务

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

最新文章

  1. Android-Spinner [使用C# And Java实现]
  2. codeforces 711E. ZS and The Birthday Paradox 概率
  3. [ruby on rails] 跟我学之(4)路由映射
  4. PHP 中替换若干字符串字串为数组中的值,不用循环,非常高效
  5. Ubuntu配置网络命令(转载)
  6. when not exists 用法
  7. iOS 简单总结:description方法\NSLog函数
  8. 构造函数继承关键apply call
  9. coffee 编译时, 用本地环境
  10. Android应用的基本组件介绍和签名Android应用程序
  11. HTML5 语义元素、迁移、样式指南和代码约定
  12. Java获取http和https协议返回的json数据
  13. bugku 逆向 love
  14. centos7防火墙导致不能访问的
  15. Python-form表单标签
  16. 活代码LINQ——04
  17. Ex 2_27 矩阵A的平方是A自乘后的乘积,即AA..._第三次作业
  18. 让IIS6支持任意扩展名和未知扩展名的下载
  19. fckeditor配置
  20. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink--容错机制(ACK,RDD,基于log和状态快照),消息处理at least once,exactly once两个是关键

热门文章

  1. 实现new Date(), 获取当前时间戳
  2. pop和push等使用方法,every和some、join
  3. 转:KVC 与 KVO 理解
  4. CF808A Lucky Year 题解
  5. python3 5月26日 time模块常用时间转换 &amp;datetime()模块学习 random()
  6. 常用故障排查监控shell脚本
  7. 在程序出现问题,当找不到错误时,第一时间用try ,catch包括起来
  8. windows平台使用 pthreads库
  9. VS c/c++常用配置项
  10. 【LeetCode】270. Closest Binary Search Tree Value 解题报告(C++)