Hadoop集群(四) Hadoop升级

简介:

Hadoop前面安装的集群是2.6版本,现在升级到2.7版本。

注意,这个集群上有运行Hbase,所以,升级前后,需要启停Hbase。

更多安装步骤,请参考:

Hadoop集群(一) Zookeeper搭建

Hadoop集群(二) HDFS搭建

Hadoop集群(三) Hbase搭建

升级步骤如下:

集群IP列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Namenode:
192.168.143.46
192.168.143.103
Journalnode:
192.168.143.101
192.168.143.102
192.168.143.103
Datanode&Hbase regionserver:
192.168.143.196
192.168.143.231
192.168.143.182
192.168.143.235
192.168.143.41
192.168.143.127
Hbase master:
192.168.143.103
192.168.143.101
Zookeeper:
192.168.143.101
192.168.143.102
192.168.143.103

1. 首先确定hadoop运行的路径,将新版本的软件分发到每个节点的这个路径下,并解压。

1
2
3
4
5
6
7
8
# ll /usr/ local /hadoop/
total 493244
drwxrwxr-x 9 root root      4096 Mar 21  2017 hadoop-release ->hadoop-2.6.0-EDH-0u1-SNAPSHOT-HA-SECURITY
drwxr-xr-x 9 root root      4096 Oct 11 11:06 hadoop-2.7.1
-rw-r --r-- 1 root root 194690531 Oct  9 10:55 hadoop-2.7.1.tar.gz
drwxrwxr-x 7 root root      4096 May 21  2016 hbase-1.1.3
-rw-r --r-- 1 root root 128975247 Apr 10  2017 hbase-1.1.3.tar.gz
lrwxrwxrwx 1 root root        29 Apr 10  2017 hbase-release -> /usr/ local /hadoop/hbase-1.1.3

由于是升级,配置文件完全不变,将原hadoop-2.6.0下的etc/hadoop路径完全拷贝/替换到hadoop-2.7.1下。

至此,升级前的准备就已经完成了。


下面开始升级操作过程。全程都是在一个中转机上执行的命令,通过shell脚本执行,省去频繁ssh登陆的操作。

## 停止hbase,hbase用户执行 

2. 停止Hbase master,hbase用户执行

状态检查,确认master,先停standby master

1
http://192.168.143.101:16010/master-status
1
2
3
4
5
master:
ssh -t -q 192.168.143.103  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ master"
ssh -t -q 192.168.143.103  sudo su -l hbase -c  "jps"
ssh -t -q 192.168.143.101  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ master"
ssh -t -q 192.168.143.101  sudo su -l hbase -c  "jps"

3. 停止Hbase regionserver,hbase用户执行

1
2
3
4
5
6
ssh -t -q 192.168.143.196  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ regionserver"
ssh -t -q 192.168.143.231  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ regionserver"
ssh -t -q 192.168.143.182  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ regionserver"
ssh -t -q 192.168.143.235  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ regionserver"
ssh -t -q 192.168.143.41   sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ regionserver"
ssh -t -q 192.168.143.127  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ stop\ regionserver"

检查运行状态

1
2
3
4
5
6
ssh -t -q 192.168.143.196  sudo su -l hbase -c  "jps" 
ssh -t -q 192.168.143.231  sudo su -l hbase -c  "jps"
ssh -t -q 192.168.143.182  sudo su -l hbase -c  "jps"
ssh -t -q 192.168.143.235  sudo su -l hbase -c  "jps"
ssh -t -q 192.168.143.41   sudo su -l hbase -c  "jps"
ssh -t -q 192.168.143.127  sudo su -l hbase -c  "jps"

## 停止服务--HDFS

4. 先确认,active的namenode,网页确认.后续要先启动这个namenode

1
https://192.168.143.46:50470/dfshealth.html#tab-overview

5. 停止NameNode,hdfs用户执行

NN: 先停standby namenode

1
2
3
4
5
ssh -t -q 192.168.143.103  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ namenode"
ssh -t -q 192.168.143.46   sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ namenode"
检查状态
ssh -t -q 192.168.143.103  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.46   sudo su -l hdfs -c  "jps"

6. 停止DataNode,hdfs用户执行

1
2
3
4
5
6
ssh -t -q 192.168.143.196  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ datanode"
ssh -t -q 192.168.143.231  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ datanode"
ssh -t -q 192.168.143.182  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ datanode"
ssh -t -q 192.168.143.235  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ datanode"
ssh -t -q 192.168.143.41   sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ datanode"
ssh -t -q 192.168.143.127  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ datanode"

7. 停止ZKFC,hdfs用户执行

1
2
ssh -t -q 192.168.143.46   sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ zkfc"
ssh -t -q 192.168.143.103  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ zkfc"

8.停止JournalNode,hdfs用户执行

1
2
3
4
JN:
ssh -t -q 192.168.143.101  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ journalnode"
ssh -t -q 192.168.143.102  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ journalnode"
ssh -t -q 192.168.143.103  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ stop\ journalnode"

### 备份NameNode的数据,由于生产环境,原有的数据需要备份。以备升级失败回滚。

9. 备份namenode1

1
2
ssh -t -q 192.168.143.46  "cp -r /data1/dfs/name    /data1/dfs/name.bak.20171011-2;ls -al /data1/dfs/;du -sm /data1/dfs/*" 
ssh -t -q 192.168.143.46  "cp -r /data2/dfs/name    /data2/dfs/name.bak.20171011-2;ls -al /data1/dfs/;du -sm /data1/dfs/*"

10. 备份namenode2

1
2
ssh -t -q 192.168.143.103  "cp -r /data1/dfs/name
/data1/dfs/name.bak.20171011-2;ls -al /data1/dfs/;du -sm /data1/dfs/*"

11. 备份journal

1
2
3
ssh -t -q 192.168.143.101  "cp -r /data1/journalnode   /data1/journalnode.bak.20171011;ls -al /data1/dfs/;du -sm /data1/*"
ssh -t -q 192.168.143.102  "cp -r /data1/journalnode   /data1/journalnode.bak.20171011;ls -al /data1/dfs/;du -sm /data1/*"
ssh -t -q 192.168.143.103  "cp -r /data1/journalnode   /data1/journalnode.bak.20171011;ls -al /data1/dfs/;du -sm /data1/*"

journal路径,可以查看hdfs-site.xml文件

1
2
dfs.journalnode.edits.dir:  
/data1/journalnode

### 升级相关

12. copy文件(已提前处理,参考第一步)

切换软连接到2.7.1版本

1
ssh -t -q $h  "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"

13. 切换文件软链接,root用户执行

1
2
3
4
5
6
7
8
9
10
ssh -t -q 192.168.143.46    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.103    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.101    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.102    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.196    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.231    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.182    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.235    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.41     "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"
ssh -t -q 192.168.143.127    "cd /usr/local/hadoop; rm hadoop-release; ln -s hadoop-2.7.1 hadoop-release"

确认状态

1
2
3
4
5
6
7
8
9
10
ssh -t -q 192.168.143.46     "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.103    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.101    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.102    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.196    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.231    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.182    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.235    "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.41     "cd /usr/local/hadoop; ls -al"
ssh -t -q 192.168.143.127    "cd /usr/local/hadoop; ls -al"

### 启动HDFS,hdfs用户执行

14. 启动JournalNode 

1
2
3
4
JN:
ssh -t -q 192.168.143.101  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ journalnode"
ssh -t -q 192.168.143.102  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ journalnode"
ssh -t -q 192.168.143.103  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ journalnode"
1
2
3
ssh -t -q 192.168.143.101  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.102  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.103  sudo su -l hdfs -c  "jps"

15. 启动第一个NameNode

1
2
3
ssh 192.168.143.46
su - hdfs
/usr/ local /hadoop/hadoop-release/sbin/hadoop-daemon.sh start namenode -upgrade

16. 确认状态,在状态完全OK之后,才可以启动另一个namenode

1
https://192.168.143.46:50470/dfshealth.html#tab-overview

17. 启动第一个ZKFC

1
2
3
su - hdfs
/usr/ local /hadoop/hadoop-release/sbin/hadoop-daemon.sh start zkfc
192.168.143.46

18. 启动第二个NameNode

1
2
3
4
ssh 192.168.143.103
su - hdfs
/usr/ local /hadoop/hadoop-release/bin/hdfs namenode -bootstrapStandby
/usr/ local /hadoop/hadoop-release/sbin/hadoop-daemon.sh start namenode

19. 启动第二个ZKFC

1
2
3
ssh 192.168.143.103
su - hdfs
/usr/ local /hadoop/hadoop-release/sbin/hadoop-daemon.sh start zkfc

20. 启动DataNode

1
2
3
4
5
6
ssh -t -q 192.168.143.196  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ datanode"
ssh -t -q 192.168.143.231  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ datanode"
ssh -t -q 192.168.143.182  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ datanode"
ssh -t -q 192.168.143.235  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ datanode"
ssh -t -q 192.168.143.41   sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ datanode"
ssh -t -q 192.168.143.127  sudo su -l hdfs -c  "/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh\ start\ datanode"

确认状态

1
2
3
4
5
6
ssh -t -q 192.168.143.196  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.231  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.182  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.235  sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.41   sudo su -l hdfs -c  "jps"
ssh -t -q 192.168.143.127  sudo su -l hdfs -c  "jps"

21. 一切正常之后,启动hbase, hbase用户执行

启动hbase master,最好先启动原来的active master。

1
2
ssh -t -q 192.168.143.101  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ master"
ssh -t -q 192.168.143.103  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ master"

启动Hbase regionserver

1
2
3
4
5
6
ssh -t -q 192.168.143.196  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"
ssh -t -q 192.168.143.231  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"
ssh -t -q 192.168.143.182  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"
ssh -t -q 192.168.143.235  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"
ssh -t -q 192.168.143.41   sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"
ssh -t -q 192.168.143.127  sudo su -l hbase -c  "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"

22. Hbase region需要手动Balance开启、关闭

需要登录HBase Shell运行如下命令

开启

balance_switch true

关闭

balance_switch false


23. 本次不执行,系统运行一周,确保系统运行稳定,再执行Final。

注意:这期间,磁盘空间可能会快速增长。在执行完final之后,会释放一部分空间。

Finallize upgrade: hdfs dfsadmin -finalizeUpgrade  










本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/1976472,如需转载请自行联系原作者

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
XML 分布式计算 安全
hadoop升级流程
hadoop升级流程
|
5月前
|
分布式计算 运维 Hadoop
42 Hadoop的HA集群的安装部署
42 Hadoop的HA集群的安装部署
64 0
|
6天前
|
分布式计算 负载均衡 Hadoop
Hadoop集群节点添加
Hadoop集群节点添加
|
11天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
39 9
|
12天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
22 4
|
14天前
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop的三种集群模式
【4月更文挑战第9天】【Hadoop】Hadoop的三种集群模式
|
16天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
16 0
|
4月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
84 0
Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
26 0
|
3月前
|
分布式计算 Hadoop Java
linux上面hadoop配置集群
linux上面hadoop配置集群
46 0

相关实验场景

更多