天天看點

運維實戰100:CDH5.16.2更新至CDH6.3.2

作者:滌生大資料

本期來分享一個cdh企業運維實戰案例

背景

為适應公司業務發展需求,提高相關大資料元件版本,解決開發中的一些技術問題和代碼優化,需要将現有叢集CDH版本由5.x版本更新為6.3.x版本,也是為了适配如Flink、Doris等一些計算引擎。由于生産遷移風險巨大,我們現在測試叢集進行驗證。

遷移前的準備工作還是非常重要且細緻的,要考慮到各個細節的部分的,大緻流程一般如下:

1.Cloudera官網調研遷移可行性,包括作業系統,mysql,JDK版本等細節内容确認是否影響更新;
2.Cloudera官網已經給出非常詳細的更新方案及復原步驟,一定要多注意;
3.CM版本先更新,備份核心庫表資料;
4.CDH版本再更新,備份各種元件核心庫表如hive中繼資料庫等。
5.做好更新失敗復原的方案。
# 官網:https://docs.cloudera.com/documentation/enterprise/upgrade/topics/ug_cm_upgrade_backup.html           

1.Cloudera Manager更新

1.1 備份工作

1.1.1 備份Cloudera Manager Agent

# 檢視CM庫詳細資訊
cat /etc/cloudera-scm-server/db.properties           
運維實戰100:CDH5.16.2更新至CDH6.3.2
# 所有agent主機執行備份指令
export CM_BACKUP_DIR="`date +%F`-CM5.16"
echo $CM_BACKUP_DIR
mkdir -p $CM_BACKUP_DIR

# 開始打包cm-agent和yum源包
tar -cf $CM_BACKUP_DIR/cloudera-scm-agent.tar --exclude=*.sock /etc/cloudera-scm-agent /etc/default/cloudera-scm-agent /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent
tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d

#批量執行可以用ansible
ansible -i host cloudera_test -m shell -a "export CM_BACKUP_DIR="`date +%F`-CM5.16""           

1.1.2 備份Cloudera Manager Service

# Service Monitor執行
cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM5.16

# Host Monitor 執行
cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM5.16

# Event Server 執行
cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM5.16           

1.1.3 備份 Cloudera Manager Databases

# mysql機器上執行
mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM5.16.sql           

CM界面開始停止叢集服務和Cloudera監控服務,伺服器上批量停止

systemctl stop cloudera-scm-agent
systemctl stop cloudera-scm-server           
運維實戰100:CDH5.16.2更新至CDH6.3.2

2 更新Cloudera Server&&Cloudera Agent

2.1 更新Cloudera Server

#1. 修改yum源
# 注釋掉舊的安裝源換成新版本即可

#2. 重新整理
yum clean all && yum makecache

#3. 更新安裝
yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent

#4. CM主機啟動cloudera-scm-server && cloudera-scm-agent           
運維實戰100:CDH5.16.2更新至CDH6.3.2

運維實戰100:CDH5.16.2更新至CDH6.3.2

Cloudera-scm-server重新開機部分日志如下:

運維實戰100:CDH5.16.2更新至CDH6.3.2

運維實戰100:CDH5.16.2更新至CDH6.3.2

2.2 更新Cloudera Agent

運維實戰100:CDH5.16.2更新至CDH6.3.2

點選重新整理後可以看到CM主節點已經得到更新,但是其餘從節點未做修改,下一步我們開始批量更新Agent節點的版本,隻需要修改對應yum源,執行更新指令&&啟動即可

#1. 修改yum源
yum clean all && yum makecache

#2. 更新
yum upgrade cloudera-manager-daemons cloudera-manager-agent -y

#3. 啟動agent
systemctl start cloudera-scm-agent

#4. 重新整理cm界面後更新成功           
運維實戰100:CDH5.16.2更新至CDH6.3.2

開始啟動服務 Cloudera Management Service

運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2
#這部分出問題可參考官網
https://docs.cloudera.com/documentation/enterprise/upgrade/topics/ug_cm_downgrade.html           

3 更新CDH版本

CDH更新前看下更新後的CM界面,CDH依舊是5.16.2的。下面開始更新CDH版本

運維實戰100:CDH5.16.2更新至CDH6.3.2

看了下來自官網的警告,瑟瑟發抖呀,更新之前還得對各種元件做好處理呀兄弟們!!!

運維實戰100:CDH5.16.2更新至CDH6.3.2

下圖中,官網告訴我們MR、Yarn等一些元件不需要單獨處理,但是ZK,HDFS,Hbase都需要單獨進行備份。

運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2

3.1 Zookeeper備份

#備份每台ZK服務
cp -rp /var/lib/zookeeper/ /var/lib/zookeeper-backup-`date +%F`CM6.3.1-CDH5.16           

3.2 HDFS備份

#1.備份每台Journal服務,這裡一定要是自己jn資料的目錄哈
 cp -rp /hadoop1/dfs/jns /hadoop1/dfs/jn-CM6.3.1-CDH5.16

#2.備份每台namenode,也一定注意自己的安裝路徑
mkdir -p /etc/hadoop/conf.rollback.namenode
cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-NAMENODE\#34; | head -1`
cp -rp /etc/hadoop/conf.cloudera.hdfs/log4j.properties /etc/hadoop/conf.rollback.namenode/

#3.備份每台datanode運作目錄
mkdir -p /etc/hadoop/conf.rollback.datanode/
cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-DATANODE\#34; | head -1`
rm -rf /etc/hadoop/conf.rollback.datanode/log4j.properties
cp -rp /etc/hadoop/conf.cloudera.hdfs/log4j.properties /etc/hadoop/conf.rollback.datanode/
           

3.3 Hue備份

#hue服務的主機上
mkdir -p /opt/cloudera/parcels_backup
 cp -rp /opt/cloudera/parcels/CDH/lib/hue/app.reg /opt/cloudera/parcels_backup/app.reg-CM6.3.1-CDH5.16           

3.4 更新CDH版本

準備好hhtpd遠端配置的CDH parcel安裝包,CM界面點選主機中的parcel,配置新的parcel安裝源,如下圖:

運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2

配置完成後出現如上截圖,我們開始下載下傳 -> 配置設定 -> 解壓 -> 激活,然後開始更新。

運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2

感覺還是很順利的哈哈哈哈!!!

運維實戰100:CDH5.16.2更新至CDH6.3.2

運維實戰100:CDH5.16.2更新至CDH6.3.2

更新成功!不過有一說一,更新的情況還是比較适用于大資料元件不多且叢集規模不大的情況,如果條件允許的話直接重建會更快一些!

運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2
運維實戰100:CDH5.16.2更新至CDH6.3.2

繼續閱讀