?Fayson的github: github.com/fayson/cdhpr

推薦關注微信公眾號:「Hadoop實操」,ID:gh_c4c535955d0f,或者掃描文末二維碼。

1 文檔編寫目的

本文檔講述如何升級Cloudera Manager和CDH,通過本文檔,您將學習到以下知識:

1.如何對Cloudera Manager進行停機升級

2.如何對CDH進行停機升級

3.如何在不影響集羣作業的情況下進行CDH滾動升級

文檔主要分為以下幾步:

1.Cloudera升級概述

2.Minor版本Cloudera Manager和CDH升級

3.Maintenance版本滾動升級CDH

4.滾動升級時進行任務驗證

5.集羣升級完成後功能驗證

這篇文檔將重點介紹CDH升級,並基於以下假設:

1.CDH5.4.3環境已搭建並正常運行

2.集羣服務(CM、HBase、HDFS、Hive、Hue、Oozie、Spark、Yarn、Zookeeper)

3.Cloudera Manager使用rpm安裝

4.CDH使用parcels安裝

5.集羣未配置Kerberos

以下是本次測試環境,但不是本操作手冊的硬限制:

1.操作系統:Redhat6.5

2.舊CM/CDH版本:CM5.4.3/ CDH5.4.3

3.目標CM/CDH的升級版本:CM5.11.1/ CDH5.11.1

4.採用sudo許可權的ec2-user用戶進行操作

升級建議:

1.針對CDH的Maintenance Version升級,可以使用滾動升級,比如:5.4.x升級到5.4.y,這種版本升級主要修復bug,不改動API,也不涉及新的功能。

2.針對CDH的Minor Version升級,建議停機升級或者滾動升級(如果跨度不大),比如5.x.x升級到5.y.y,這種版本升級主要是增加新的功能和新的API。

3.針對CDH的Major Version升級,建議必須停機升級,而且在升級前需要對已有應用和作業的改造和升級進行完備的測試驗證,相應升級時停機時間會較長,這種版本升級一般是Hadoop相關組件的大版本升級,可能會改動API。

2 Cloudera升級概述

下面描述的流程適用於由Cloudera Manager管理的集羣,對於不是由Cloudera Manager管理的集羣升級,請參考:Upgrading Unmanaged CDH Using the Command Line

你可以使用tarballs或operating system packages來升級Cloudera Manager,然後使用packages或parcels來升級CDH。同時有可能還需要安裝一個新版JDK。升級Cloudera Manager的同時Cloudera Navigator也會被升級。

CDH和Cloudera Manager不用同時升級,但是需要保證Cloudera Manager和CDH版本的兼容。Cloudera Manager可以管理當前或以前的major版本的CDH,或相同minor版本的CDH,或較低minor版本的CDH。比如,Cloudear Manager 5.7.1可以管理CDH5.7.2,CDH5.6.1和CDH4.8.6,但是不能管理CDH5.8.1. Cloudera Manager5.x不能管理CDH3.x。

升級時具體有如下幾種選擇:

2.1 評估升級影響

一般需要規劃一個足夠長的維護窗口(停機時間)進行升級。根據需要升級的組件,集羣的節點數,以及不同的硬體情況,你可能需要一整天來進行升級。開始升級之前,你需要做好一些前置條件準備以及關鍵數據備份,這篇文檔在講述升級步驟時也會說明。

升級之前,需要查閱Cloudera Manager的Cloudera Enterprise 5.x Release Notes,瞭解API更改,不推薦的功能,新的功能以及不兼容的更改。同時需要檢查CDH 5 and Cloudera Manager 5 Requirements and Supported Versions來確認支持的操作系統,JDK,資料庫和其他組件。

一共有三種版本的升級:major,minor和maintenance。

Major升級

Major版本的升級通常有以下特徵:

Hadoop的大版本變化,涉及很多更新內容

  • 不兼容的數據格式
  • Cloudera Manager界面的重大變化
  • Cloudera Manager的資料庫schema變動,不過可以在升級過程中自動被處理
  • 需要較長的停機時間
  • 需要重新部署客戶端

你也可以只升級major版本,而保持minor版本不變,比如你可以從4.8.1升級到5.8.0. 為了方便下一個major版本的升級(CDH6),我們建議您現在可以將集羣升級到5.x

Minor版本升級

Minor版本升級是指基於同樣的major版本將minor版本進行升級,比如從5.4.x升級到5.8.x,一般有以下特徵:

  • 新的功能
  • Bug修復
  • 可能存在的資料庫schema更改會在Cloudera Manager升級時自動被處理

一般來說,minor版本的升級不包括不兼容的更改或者數據格式的變化。客戶端配置(Client Configuration Files)會被重置。

Maintenance版本升級

Maintenance版本升級主要是重大bug修復或者解決一些安全問題。不會有兼容性修改和新功能。

2.2 Cloudera Manager升級概述

升級Cloudera Manager包括以下步驟:

1.在CM節點上升級Cloudera Manager Server,使用操作系統的命令,比如Redhat的yum。也可以手動通過tarballs來升級。tarballs升級比較適合集羣中已經有一些可以同時操作多臺機器的腳本,程序或工具。

2.在所有主機上升級Cloudera Manager agent,Cloudera Manager的升級嚮導可以幫助你升級agent(JDK升級可選),同時也可以手動的通過tarballs升級JDK和agent。在這個過程中,CDH並不會被升級。

Cloudera Manager升級,可以參考官網文檔:Upgrading Cloudera Manager

2.3 CDH升級概述

CDH升級包含Hadoop相關組件的升級,你可以使用Cloudera Manager來升級CDH,採用parcel和package的方式都可以。

2.3.1 使用Parcel升級(同時適用於滾動升級)

我們建議使用parcels來升級CDH,因為Cloudera Manager管理這些parcels自動下載,分發和激活。有兩種方式的升級:

  • Parcels:需要重啟集羣才能完成升級。
  • 滾動升級:如果HDFS啟用了高可用HA,可以在不重啟集羣的情況下進行滾動升級。為了簡化升級步驟,可以考慮從package切換到parcels,這樣Cloudera Manager可以大大簡化升級步驟。在升級CDH5的時候你從package切換到parcels也可以。

2.3.2 使用Packages升級

使用packages升級需要你提前下載好需要升級的packages,然後手動的運行package更新命令來升級,注意所有主機都需要進行相同的操作。參考:Upgrading to CDH 5.x Using Packages

從Cloudera Manager5.3開始,CDH提供嚮導式的升級包括major版本升級(CDH5到CDH5),minor版本升級(CDH5.x到5.y)和maintenance版本升級(CDHa.b.x到CDHa.b.y)。無論你是使用parcels安裝還是package都支持,但是package需要你手動安裝和升級,但是parcels可以被Cloudera Manager自動安裝和升級。參考:Upgrading CDH and Managed Services Using Cloudera Manager

2.4 Cloudera Navigator升級概述

當升級Cloudera Manager的時候,Cloudera Navigator Metadata和Audit servers會被自動升級。你還可以升級其他的Navigator組件比如Cloudera Navigator Key Trustee Server, Cloudera Navigator Key HSM和Cloudera Navigator Encrypt。當然也可以選擇不升級。參考:Upgrading Cloudera Navigator Components

2.5 JDK升級

在升級Cloudera Manager和CDH之前,請確保集羣內的所有主機都是使用受支持的Oracle JDK,參考:supported version of the Oracle Java Development Kit (JDK)。同時,所有主機必須使用相同版本的JDK:參考:Upgrading to Oracle JDK 1.8

3 Minor版本升級

升級前置條件:

1.確保當前系統版本支持您要升級到的新版本CDH5和Cloudera Manager5

2.原Cloudera Manager和CDH的版本為5.4.3

3.Cloudera Manager和CDH的目標升級版本為5.11.1

3.1 Cloudera Manager升級

本章節主要講述如何使用RPM包升級Cloudera Manager。

3.1.1 升級前準備

3.1.1.1Cloudera Manager的yum源配置

1.準備待升級rpm包

wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-agent-5.11.1-1.cm5111.p0.9.el6.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-daemons-5.11.1-1.cm5111.p0.9.el6.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-server-5.11.1-1.cm5111.p0.9.el6.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-server-db-2-5.11.1-1.cm5111.p0.9.el6.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/enterprise-debuginfo-5.11.1-1.cm5111.p0.9.el6.x86_64.rpm
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm
wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

2.將下載的安裝包放在/var/www/html/cm5.11.1目錄下

進入cm5.11.1目錄,運行命令:

[ec2-user@ip-172-31-8-141 cm5.11.1]$ sudo createrepo .

3.驗證是否能通過瀏覽器訪問

4.配置/etc/yum.repos.d/cloudera-manager.repo文件,內容如下

[cloudera-manager]
name = Cloudera Manager, Version 5.11.1
baseurl = http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/
gpgcheck = 0

5.測試yum源是否正常

[ec2-user@ip-172-31-8-141 yum.repos.d]$ sudo yum clean all
[ec2-user@ip-172-31-8-141 yum.repos.d]$ sudo yum repolist

3.1.1.2 備份Cloudera Manager資料庫

1.停止Cloudera Management Service服務

2.備份Cloudera Manager資料庫,在命令行執行如下命令

  • Cloudera Manager Server
  • Cloudera Navigator Audit Server
  • Cloudera Navigator Metadata Server
  • Activity Monitor
  • Reports Manager

[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u cm -p --databases cm >cm.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nas -p --databases nas >nas.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nms -p --databases nms >nms.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u am -p --databases am >am.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u rm -p --databases rm >rm.dump

查找資料庫相關的信息,可從如下文件中查找

Cloudera Manager Server的資料庫信息,通過配置文件/etc/cloudera-scm-server/db.properties獲取

其它服務的資料庫信息,可以通過CM管理界面獲取

3.1.2 升級步驟

1.停止Cloudera Management Service服務

2.停止Cloudera Manager Server和agent

停止所有伺服器的cloudera-scm-agent服務

[ec2-user@ip-172-31-8-141 ~]$ sudo service cloudera-scm-agent stop

在運行Cloudera Manager伺服器的主機上,停止cloudera-scm-server服務

[ec2-user@ip-172-31-8-141 cdh-shell-master]$ sudo service cloudera-scm-server stop

3.在Cloudera Manager上備份以下目錄

[ec2-user@ip-172-31-8-141 cm_bak]$ sudo scp -r /etc/cloudera-scm-server/ /home/ec2-user/upgrade/cm_bak/
[ec2-user@ip-172-31-8-141 cm_bak]$ sudo scp -r /etc/cloudera-scm-agent/ /home/ec2-user/upgrade/cm_bak/

注意文件目錄許可權與原數據目錄許可權一致。

4.運行以下命令進行Cloudera Manager Server升級

[ec2-user@ip-172-31-8-141 cm_bak]$ sudo yum -y upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent

檢查是否安裝成功

[ec2-user@ip-172-31-8-141 cm_bak]$ rpm -qa |grep cloudera-

5.啟動Cloudera Manager Server服務

[ec2-user@ip-172-31-8-141 cloudera-scm-agent]$ sudo service cloudera-scm-server start

6.登錄Cloudera Manager管理控制檯,顯示升級嚮導

7.選擇升級Cloudera Manager Agent軟體包,繼續

8.選擇「自定義存儲庫」,配置2.1.2章節的地址,點擊「繼續」

9.選擇JDK選擇,點擊「繼續」

10.根據要求輸入SSH登錄憑證,點擊「繼續」

11.等待安裝完成,點擊「繼續」

12.檢查完成,點擊「完成」

13.進入審核更改嚮導界面,點擊「繼續」

14.選擇重啟Cloudera Management Service,點擊「繼續」

15.服務重啟成功,點擊「完成」

集羣服務任在正常運行

Cloudera Manager在升級後報告過時的配置,請重新啟動集羣服務並重新部署客戶端配置

3.1.3 Cloudera Manager升級驗證

1.查看Cloudera Manager版本

版本顯示為升級後版本

2.驗證Agent是否向Cloudera Manager發送心跳

默認情況下,該心跳為15s一次;

3.檢查所有主機

4.集羣歷史監控數據

3.2 CDH升級

3.2.1 升級前準備

3.2.1.1準備CDH的parcels包

1.選擇cdh5.11.1版本下載對應的parcels

wget http://archive.cloudera.com/cdh5/parcels/5.11.1/CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel
wget http://archive.cloudera.com/cdh5/parcels/5.11.1/CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel.sha1
wget http://archive.cloudera.com/cdh5/parcels/5.11.1/manifest.json

2.將下載下來的3個文件,放在/var/www/html/cdh5.11.1目錄下

3.測試通過http是否能正常訪問

配置完成後,供後面升級CDH使用

3.2.2 升級流程

1.停止集羣服務

2.備份NameNode上的HDFS Metastore

在NameNode節點上備份該目錄到指定目錄下

[ec2-user@ip-172-31-8-141 dfs]$ cd /dfs/
[ec2-user@ip-172-31-8-141 dfs]$ sudo tar -czvf /home/ec2-user/upgrade/nn_bak/nn_backup.tar.gz nn/

3.備份資料庫

  • Cloudera Manager Server

[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u hue -p --database hue >hue.dump
[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u hive -p --database metastore >metastore.dump
[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u oozie -p --database oozie >oozie.dump
[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u sentry -p --database sentry >sentry.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u cm -p --databases cm >cm.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nas -p --databases nas >nas.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nms -p --databases nms >nms.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u am -p --databases am >am.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u rm -p --databases rm >rm.dump

4.向集羣中添加新版的CDH存儲庫

5.運行升級嚮導

6.進入升級嚮導界面

7.確認CDH版本是否正確,點擊「繼續」

8.選擇「是」,點擊「繼續」

9.點擊「繼續」

10.等待安裝完成後,點擊「繼續」

11.檢查主機完成後,點擊「繼續」

12.選擇完整集羣升級,點擊「繼續」

13.等待升級集羣命令完成,點擊「繼續」

14.集羣升級成功

15.最終化元數據升級

在最終化元數據之前,進行幾天甚至幾周的運行觀察集羣是否正常,在發現所有任務都沒有任何異常情況後,再進行最終化元數據操作。一旦進行最終化元數據之後,就不能回滾到老的版本了,除非有數據備份。對NameNode的主備節點都執行最終化元數據升級操作:

3.2.3 功能驗證

1.運行一個MapReduce作業

登錄集羣伺服器,操作如下指令

sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100

2.用Hue測試

Hue正常登錄,通過Hue操作HBase,向HBase中新建一個test表

向test表中添加一條數據

數據添加成功

通過hbase-shell查看該表是否存在

3.測試hive

beeline登錄hive進行測試

Hue測試hive

能正常查詢test表數據

4 CDH的Maintenance版本滾動升級

升級前置條件:

  1. 確保當前系統版本支持您要升級到的新版本CDH5和Cloudera Manager5
  2. 原Cloudera Manager和CDH的版本為5.10.0
  3. Cloudera Manager和CDH的目標升級版本為5.10.2
  4. 集羣已開啟NameNode高可用
  5. 集羣已開啟Resource Manager高可用

4.1 Cloudera Manager升級

4.1.1 升級前準備

4.1.1.1 Cloudera Manager 的yum源配置

1.下載Cloudera Manager的RPM安裝包

sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-agent-5.10.2-1.cm5102.p0.9.el6.x86_64.rpm
sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-daemons-5.10.2-1.cm5102.p0.9.el6.x86_64.rpm
sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-server-5.10.2-1.cm5102.p0.9.el6.x86_64.rpm
sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-server-db-2-5.10.2-1.cm5102.p0.9.el6.x86_64.rpm
sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/enterprise-debuginfo-5.10.2-1.cm5102.p0.9.el6.x86_64.rpm
sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/jdk-6u31-linux-amd64.rpm
sudo wget http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

2.將下載的的7個RPM安裝包,放在/var/www/html/cm5.10.2目錄下

3.在該目錄下執行如下命令

[ec2-user@ip-172-31-8-141 cm5.10.2]$ sudo createrepo .

4.通過瀏覽器測試是否能正常訪問

5.修改/etc/yum.repos.d/cloudera-manager.repo配置

[ec2-user@ip-172-31-8-141 cm5.10.2]$ sudo vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version 5.10.2
baseurl = http://ip-172-31-8-141.ap-southeast-1.compute.internal/cm5.10.2
gpgcheck = 0

6.測試Cloudera Manager的yum源是否配置好

[ec2-user@ip-172-31-8-141 cm5.10.2]$ sudo yum clean all
[ec2-user@ip-172-31-8-141 cm5.10.2]$ sudo yum repolist

4.1.1.2 備份Cloudera Manager資料庫

1.停止Cloudera Management Service服務和Cloudera ManagerService服務

通過Cloudera Manager 控制檯,停止ClouderaManagement Service服務

通過如下命令停止Cloudera Manager Server服務

[ec2-user@ip-172-31-8-141 ~]$ sudo service cloudera-scm-server stop

2.備份Cloudera Manager資料庫,在命令行執行如下命令

  • Cloudera Manager Server
  • Activity Monitor
  • Reports Manager

[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u cm -p --databases cm >cm.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u am -p --databases am >am.dump
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u rm -p --databases rm >rm.dump

4.1.2 升級流程

1.確保Cloudera Management Service服務已停止

2.在所有安裝Cloudera Manager Agent的主機上執行以下命令,停止Agent服務

[ec2-user@ip-172-31-8-141 cdh-shell-master]$ sudo service cloudera-scm-agent stop

3.向集羣提交一個MR作業

4.運行以下命令進行Cloudera Manager Server升級

[ec2-user@ip-172-31-8-141 cm_bak]$ sudo yum -y upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent

檢查是否安裝成功

[ec2-user@ip-172-31-8-141 cm_bak]$ rpm -qa |grep cloudera-

5.啟動Cloudera Manager Server服務,命令如下

[ec2-user@ip-172-31-8-141 cdh-shell-master]$ sudo service cloudera-scm-server start

6.登錄Cloudera Manager控制檯,進入顯示升級嚮導

7.選擇升級Cloudera Manager Agent,點擊「繼續」

8.輸入Cloudera Manager存儲庫URL,點擊「繼續」

9.勾選java選項,點擊「繼續」

10.輸入SSH登錄憑證,點擊「繼續」

11.等待Cloudera Manager Agent升級完成,點擊「繼續」

12.檢查完成後,點擊「繼續」

13.完成升級,進入升級嚮導頁面

14.根據需要進行修改,點擊「繼續」

15.重啟Cloudera Management Service,點擊「繼續」

16.點擊「完成」,進入Cloudera Manager控制檯主頁

升級成功,並且Hadoop的相關服務均正常。

17.升級完成MR作業任在運行

18.作業運行成功

19.統計結果

| Type | Date | Time | Input_data_size | Duration(s) | Throughput(bytes/s) | Throughput/node | |:----|:----|:----|:----|:----|:----|:----| | HadoopWordcount | 2017/8/17 | 12:02:39 | 32849063607 | 991.502 | 33130607 | 33130607 |

4.1.3 功能驗證

1.查看Cloudera Manager版本

版本已顯示為5.10.2表明升級成功。

2.驗證Agent是否向Cloudera Manager發送心跳

默認情況下,該心跳為15s一次;

3.檢查所有主機

4.集羣歷史監控數據

歷史監控數據正常,只有在升級Cloudera Manager Agent時段內無數據。

4.2 滾動升級CDH

4.2.1 升級前準備

4.2.1.1 準備CDH parcels包

1.選擇cdh5.10.0版本下載對應的parcels

wget http://archive.cloudera.com/cdh5/parcels/5.10.2/CDH-5.10.2-1.cdh5.10.2.p0.5-el6.parcel
wget http://archive.cloudera.com/cdh5/parcels/5.10.2/CDH-5.10.2-1.cdh5.10.2.p0.5-el6.parcel.sha1
wget http://archive.cloudera.com/cdh5/parcels/5.10.2/manifest.json

2.將下載下來的3個文件,放在/var/www/html/cdh5.10.2目錄下

3.測試通過http是否能正常訪問

配置完成後,供後面升級CDH使用

4.2.1.2 運行MR作業

1.在升級前環境前提交一個WordCount的MapReduce作業

2.查看作業運行情況

3.作業運行完成

4.統計結果

| Type | Date | Time | Input_data_size | Duration(s) | Throughput(bytes/s) | Throughput/node | |:----|:----|:----|:----|:----|:----|:----| | HadoopWordcount | 2017/8/17 | 11:09:20 | 32849063607 | 984.096 | 33379938 | 33379938 |

4.2.1.3 配置CDH的存儲庫URL

根據標識進入CDH存儲庫URL配置界面

通過Cloudera Manager 控制檯配置CDH的存儲庫URL

保存更改,點擊「檢查新parcels」

配置成功。

4.2.1.4 備份HDFS元數據

使用如下命令備份HDFS元數據信息

[ec2-user@ip-172-31-8-141 upgrade]$ sudo -u hdfs hadoop dfsadmin -fetchImage /home/ec2-user/upgrade/hdfs_metastore_bak

4.2.2 升級流程

1.通過Cloudera Manager控制檯進入集羣升級嚮導

2.選擇CDH版本,點擊「繼續」

3.勾選後,點擊「繼續」

4.集羣軟體檢查正常,點擊「繼續」

5.等待parcels安裝成功,點擊「繼續」

6.主機檢查通過,點擊「繼續」

7.選擇滾動升級,根據需要設置參數,點擊「繼續」

8.滾動升級過程中,向集羣提交MR作業

作業正常運行

9.等待滾動升級命令完成,點擊「繼續」

10.CDH升級完成

11.MR作業運行完成

12.統計結果

| Type | Date | Time | Input_data_size | Duration(s) | Throughput(bytes/s) | Throughput/node | |:----|:----|:----|:----|:----|:----|:----| | HadoopWordcount | 2017/8/17 | 12:42:04 | 32849063607 | 1042.461 | 31511071 | 31511071 |

4.2.3 功能驗證

1.進入Cloudera Manager控制檯主頁,查看集羣是否正常

2.向集羣提交一個MR作業

登錄集羣伺服器,操作如下指令

sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100

作業正常運行

3.用Hue測試

Hue正常登錄,通過Hue操作HBase,向test表中添加一條數據

數據添加成功

通過hbase-shell查看新增數據

4.測試Hive

beeline登錄hive進行測試

向test表中插入一條數據

查看test表數據

Hue測試hive

能正常查詢test表數據,查詢結果與命令行一致

5.使用Hue測試Impala

查詢test表

命令行查詢

4.3 CDH升級過程中任務執行耗時對比

| 執行階段 | Type | Date | Time | Input_data_size | Duration(s) | Throughput(bytes/s) | Throughput/node | |:----|:----|:----|:----|:----|:----|:----|:----| | 升級前 | HadoopWordcount | 2017/8/17 | 11:09:20 | 32849063607 | 984.096 | 33379938 | 33379938 | | 升級CM中 | HadoopWordcount | 2017/8/17 | 12:02:39 | 32849063607 | 991.502 | 33130607 | 33130607 | | 升級CDH中 | HadoopWordcount | 2017/8/17 | 12:42:04 | 32849063607 | 1042.461 | 31511071 | 31511071 |

在升級CM的過程中是不會影響作業資源使用;

在進行CDH滾動升級過程中由於重啟服務導致計算資源損失,因此作業耗時有所增加。


為天地立心,為生民立命,為往聖繼絕學,為萬世開太平。 推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。原創文章,歡迎轉載,轉載請註明:轉載自微信公眾號Hadoop實操

推薦閱讀:

相關文章