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

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

更多安装步骤,请参考:

Hadoop集群(一) Zookeeper搭建

Hadoop集群(二) HDFS搭建

Hadoop集群(三) Hbase搭建

升级步骤如下:

集群IP列表

Namenode:192.168.143.46192.168.143.103

Journalnode:192.168.143.101192.168.143.102192.168.143.103

Datanode&Hbase regionserver:192.168.143.196192.168.143.231192.168.143.182192.168.143.235192.168.143.41192.168.143.127

Hbase master:192.168.143.103192.168.143.101

Zookeeper:192.168.143.101192.168.143.102192.168.143.103

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

# 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

http://192.168.143.101:16010/master-status

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用户执行

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"

检查运行状态

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

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

5. 停止NameNode,hdfs用户执行

NN: 先停standby namenode

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用户执行

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用户执行

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用户执行

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

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

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

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文件

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

### 升级相关

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

切换软连接到2.7.1版本

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

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

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"

确认状态

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

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"

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

ssh 192.168.143.46

su - hdfs/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh start namenode -upgrade

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

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

17. 启动第一个ZKFC

su - hdfs/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh start zkfc192.168.143.46

18. 启动第二个NameNode

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

ssh 192.168.143.103

su - hdfs/usr/local/hadoop/hadoop-release/sbin/hadoop-daemon.sh start zkfc

20. 启动DataNode

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"

确认状态

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。

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

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

Hadoop集群(四) Hadoop升级的更多相关文章

  1. 大数据实操2 - hadoop集群访问——Hadoop客户端访问、Java API访问

    上一篇中介绍了hadoop集群搭建方式,本文介绍集群的访问.集群的访问方式有两种:hadoop客户端访问,Java API访问. 一.集群客户端访问 Hadoop采用C/S架构,可以通过客户端对集群进 ...

  2. 在windows远程提交任务给Hadoop集群(Hadoop 2.6)

    我使用3台Centos虚拟机搭建了一个Hadoop2.6的集群.希望在windows7上面使用IDEA开发mapreduce程序,然后提交的远程的Hadoop集群上执行.经过不懈的google终于搞定 ...

  3. Hadoop集群部署-Hadoop 运行集群后Live Nodes显示0

    可以尝试以下步骤解决: 1 ,分别删除:主节点从节点的  /usr/local/hadoop-2.6.2/etc/tmp   下得所有文件; 2: 编辑cd usr/local/hadoop-2.6. ...

  4. Hadoop集群(三) Hbase搭建

    前面已经完成Zookeeper和HDFS的安装,本文会详细介绍Hbase的安装步骤.以及安装过程中遇到问题的汇总. 系列文章:   Hadoop集群(一) Zookeeper搭建 Hadoop集群(二 ...

  5. Hadoop集群(二) HDFS搭建

    HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper ...

  6. [hadoop读书笔记] 第九章 构建Hadoop集群

    P322 运行datanode和tasktracker的典型机器配置(2010年) 处理器:两个四核2-2.5GHz CPU 内存:16-46GN ECC RAM 磁盘存储器:4*1TB SATA 磁 ...

  7. 使用Docker搭建Hadoop集群(伪分布式与完全分布式)

    之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...

  8. 大数据系列(2)——Hadoop集群坏境CentOS安装

    前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...

  9. 【hadoop】——window下elicpse连接hadoop集群基础超详细版

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

随机推荐

  1. oracle查看和替换含不可见字符(空白)

    select lengthb('1397256'), dump('1397256') from dual; select ascii('') from dual; ), '') from dua ...

  2. SPOJ3276 D-query

    题意:n个数 a1...an,q组询问,每组询问给定 l,r,输出 [ l, r ] 有多少不同的数 ( n ≤30000, q ≤200000, ai ≤ 106 ) 离线 + 树状数组维护 #in ...

  3. Java并发编程:Java Thread 的 run() 与 start() 的区别

    1. sleep 和 wait 方法解释 sleep()方法是Thread类里面的,主要的意义就是让当前线程停止执行,让出cpu给其他的线程,但是不会释放对象锁资源以及监控的状态,当指定的时间到了之后 ...

  4. 31.网站数据监控-2(scrapy文件下载)

    温州数据采集 这里采集网站数据是下载pdf:http://wzszjw.wenzhou.gov.cn/col/col1357901/index.html(涉及的问题就是scrapy 文件的下载设置,之 ...

  5. 1.python进程、线程、多线程

    2018-07-16 1.进程 简单理解:进程就是一段程序执行的过程. 广义理解:进程就是一个具有一定独立功能的程序关于某个数据集合的一次运行活动. 进程是cpu调度和分配的基本的分配单元,也是基本的 ...

  6. getent passwd 不能访问到 ldap 的用户

    getent passwd  不能访问到 ldap 的用户,搞了一整个下午! 依然没搞定, 一开始是不知道nslcd 需要启动,另外getent passwd 域, 无有用结果, 换个方式搜索 get ...

  7. github中SSH公钥的生成与添加

    在终端中输入ssh-keygen -t rsa -C "133XXXXXX@qq.com" 按3个回车,密码为空这里一般不使用密钥. 最后得到了两个文件:id_rsa和id_rsa ...

  8. java poi处理excel多sheet并实现排序

    需求:有一个数据字典全量汇总表,其中第一个sheet为目录,包括编号和表名,第二个以后为表的明细.其中sheet名就是表名但无序,sheet内字段序号无序有空行 现在要求将其中101,104,107, ...

  9. 图文详解AO打印(端桥模式)(转)

    一.概述   AO打印是英文Active-Online Print的简称,也称主动在线打印.打印前支持AO通讯协议的AO打印机首先通过普通网络与C-Lodop服务保持在线链接,网页程序利用JavaSc ...

  10. 机器学习进阶-目标跟踪-KCF目标跟踪方法 1.cv2.multiTracker_create(构造选框集合) 2. cv2.TrackerKCF_create(获得KCF追踪器) 3. cv2.resize(变化图像大小) 4.cv2.selectROI(在图像上框出选框)

    1. tracker = cv2.multiTracker_create() 获得追踪的初始化结果 2.cv2.TrackerKCF_create() 获得KCF追踪器 3.cv2.resize(fr ...