CM和CDH升級操作手冊

前言

因為cdh版本更新頻率較快,各個小版本之間變化可能不是很大,但是Cloudera公司的每一次更新帶來的都是bug的修復,技術(shù)的革新。相較于我們公司生產(chǎn)上還是cdh5.9.0有點掉隊了,現(xiàn)在急需進行一場更新變革,跟上技術(shù)的腳步,適應行業(yè)的發(fā)展。對于此次升級,主要是cm及cdh的操作,采用的是Cloudera官方給出的Tarballs方式升級,包括Cloudera Manager Server和Cloudera Manager Agent 的升級,然后再利用cm來升級cdh。

詳細步驟

收集升級信息

  1. 主機信息,確保能夠通過root免密碼登錄

  2. Cloudera Manager版本(通過cm主界面可查看)


    版本信息.png
  3. JDK版本

  4. CDH版本(通過cm主界面可查看)

  5. 確保CDH之前部署的方式是Parcels還是Packages(通過cm主界面可查看)

  6. CM service,Hue,Hive Metastore,Sentry Server的數(shù)據(jù)庫信息。

升級前準備工作

  1. 閱讀要升級版本的要求和系統(tǒng)需求:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html(包括cm跟cdh的匹配規(guī)則;cm跟服務器版本的匹配規(guī)則;JDK的選擇等等)
  2. 由于我們的集群未開啟TLS/SSL功能,故可不關注這方面。
  3. 確保Java 1.7或Java 1.8版本
  4. 確保Cloudera Manager次要版本等于或大于CDH的次要版本
  5. 運行Host Inspector并且修復出現(xiàn)的問題(Cluster > Inspect Hosts)
  6. 運行Security Inspector并且修復出現(xiàn)的問題(Administration > Security ,然后點擊Security Inspector)這個是集群若開啟了kerberos認證時使用。
  7. 檢查HDFS是否正常,修復檢查出的問題(hdfs fsck / 和 hdfs dfsadmin -report 命令)
  8. 檢查HBASE是否正常(hbase hbck命令)
  9. 通知業(yè)務,升級CM和整個CDH大數(shù)據(jù)平臺需要花費較長的時間
  10. 為了避免在升級期間出現(xiàn)不必要的警告,可以在啟動升級之前打開維護模式(當該群集處于維護模式中時,從該群集的服務和角色發(fā)出的警報將會被抑制),升級完成后記得退出維護模式。

在NameNode上備份HDFS Metadata

  1. 在Active NameNode的服務上找到配置的數(shù)據(jù)目錄,如果配置了多個目錄,備份其中一個目錄即可(每個目錄都是完全拷貝的元數(shù)據(jù))
    [圖片上傳失敗...(image-5389f0-1530292392783)]
    需要注意的是:如果NameNode的數(shù)據(jù)目錄下面還有以.lock擴展名的文件,那么說明NameNode還在運行,需要先停止NameNode服務。

備份數(shù)據(jù)庫數(shù)據(jù)

注意:備份數(shù)據(jù)庫之前,需要停止對應一些組件的服務,備份期間,服務不可用。
需要備份的數(shù)據(jù)庫的組件有:
Hue
Oozie
Cloudera Navigator Audit Server
Cloudera Navigator Metadata Server
Activity Monitor
Reports Manager
Sentry Server
Hive Metastore
針對我們的生產(chǎn)環(huán)境,數(shù)據(jù)庫采用的是MariaDB,所以備份方式可以采用:
![](mysqldump -hhostname -u username -p password database > /tmp/database-backup.sql
)
測試環(huán)境的數(shù)據(jù)庫有:
scm
hue
hive
sqoop
oozie
sentry

升級Cloudera Manager Server/Agent

  1. 配置需要升級的cm版本的yum源(前面講到要安裝適合本服務器對應的cm版本,此次測試集群是centos7.4的)
  • 參照之前的Cloudera的yum源配置創(chuàng)建新版本的本地repo![]([cm]
    name = Cloudera Manager, Version 5.13.0
    baseurl = https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.0/
    gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
    gpgcheck = 1)注意:一定要選擇與自己服務器匹配的cm版本。
  • yum clean all
  • yum makecache
  • 接著可查看是否已更新,驗證:![]([root@slave1 yum.repos.d]# yum list | grep cloudera
    Repository base is listed more than once in the configuration
    Repository updates is listed more than once in the configuration
    Repository extras is listed more than once in the configuration
    Repository centosplus is listed more than once in the configuration
    cloudera-manager-agent.x86_64 5.9.0-1.cm590.p0.249.el7 installed
    cloudera-manager-daemons.x86_64 5.9.0-1.cm590.p0.249.el7 installed
    cloudera-manager-server.x86_64 5.9.0-1.cm590.p0.249.el7 @cloudera-manager
    cloudera-manager-agent.x86_64 5.13.0-1.cm5130.p0.55.el7 cm
    cloudera-manager-daemons.x86_64 5.13.0-1.cm5130.p0.55.el7 cm
    cloudera-manager-server.x86_64 5.13.0-1.cm5130.p0.55.el7 cm
    cloudera-manager-server-db-2.x86_64 5.13.0-1.cm5130.p0.55.el7 cm
    jdk.x86_64 2000:1.6.0_31-fcs cloudera-manager
    oracle-j2sdk1.7.x86_64 1.7.0+update67-1 cloudera-manager)
  1. 驗證可知,新版本的yum源已配置好,接下來就是更新升級啦。

  2. web頁面關閉Cloudera Management Service服務。(當然在升級cm的時候其實跟cdh是分開的,集群可關閉也可不關,建議關閉吧)

  3. 關閉cloudera-scm-server服務,備份相關數(shù)據(jù)(備份數(shù)據(jù)庫的時候確保服務已關閉)

  4. 升級Cloudera相關組件:


    更新cm安裝包.png
  5. 檢查安裝是否成功:


    cm安裝成功.png
  6. 開啟cloudera-scm-server服務:![]([root@slave1 init.d]# cd /etc/init.d/
    [root@slave1 init.d]# ./cloudera-scm-server start)

  7. 登錄cm界面,選擇升級現(xiàn)在升級Cloudera Manager Agent


    cm界面.png
  8. 接下來就是升級agent的操作。(可能會比較耗時,因為要下載更新的軟件包,最好是都配置成公司內(nèi)部的yum安裝包源地址)

  • 選擇是,我想立即升級Cloudera Manager Agent軟件包,然后單擊繼續(xù)。
  • 選擇要安裝的Cloudera Manager Agent的版本。 通常情況下,這是Cloudera Manager Server的匹配版本。 但是,如果您使用Cloudera Manager server的自定義repository( 而不是 archive.cloudera.com),請選擇Custom Repository并提供所需的信息。 自定義repository 位置必須包含匹配的Agent 版本。
  • 點擊繼續(xù)。 顯示“JDK安裝選項”
    如果前面已經(jīng)安裝這里跳過
  • 點擊繼續(xù)
  • 指定證書并啟動代理程序安裝
    選擇root或輸入具有無密碼sudo權(quán)限的帳戶的用戶名。
    選擇一種認證方法:
    如果您選擇密碼認證,請輸入并確認密碼。
    如果您選擇公鑰認證,請?zhí)峁┧杳荑€文件的密碼和路徑。
    您可以指定一個備用的SSH端口。 默認值是22。
    您可以指定一次運行的主機安裝的最大數(shù)量。 默認值是10。
  • 點擊繼續(xù)。
    Cloudera Manager Agent軟件包和JDK(如果選擇是)將被安裝
  • 點擊繼續(xù)。
  • 主機檢查器運行檢查您的托管主機是否有正確的版本和配置。 如果發(fā)生問題,您可以進行更改,然后重新運行檢查。
    如果您對檢查結(jié)果滿意,請點擊繼續(xù)
  • agent升級成功之后會進入數(shù)據(jù)庫配置頁面, 配置這些數(shù)據(jù)庫設置: 1. 輸入數(shù)據(jù)庫的數(shù)據(jù)庫主機,數(shù)據(jù)庫類型,數(shù)據(jù)庫名稱,用戶名和密碼。
  • 因為我們的生產(chǎn)集群agent的config.ini中server_host屬性配置的是主機名,而自動升級之后,會把之前的配置文件備份重新生產(chǎn)一個server_host值是ip的文件,這個需要手動更改。
  1. 驗證并測試升級
  • 驗證代理是否正在向Cloudera Manager發(fā)送檢測信號:
    a. 點擊主機>所有主機。
    b. 點擊標題為Last Heartbeat的列標題對其進行排序。
    c. 驗證每個主機的最后一次檢測信號是否在一分鐘內(nèi)發(fā)生。
  • 在Cloudera Manager管理控制臺中,單擊主機選項卡
  • 點擊檢查所有主機。 在大型集群上,主機檢查員可能需要一些時間才能完成運行。在繼續(xù)下一步之前,您必須等待過程完成。
  • 點擊 顯示檢查結(jié)果。 顯示主機檢查器進程的所有結(jié)果,包括當前安裝的版本。如果這包括當前組件版本的列表,則安裝按預期完成。
  • 驗證監(jiān)視功能是否按預期工作; 請按照測試安裝中的說明進行操作。

升級CDH

  1. 配置適合新版本的parcel包(配置好后,最好點擊下載,因為待會升級也會要求下載分發(fā)并激活)


    parcel入口.png

    parcel配置入口.png

    配置parcel.png

    刷新parcel.png
  2. 點擊升級群集(確保集群此時已關閉,各服務不能要數(shù)據(jù)庫寫數(shù)據(jù)。)


    升級群集入口.png

    cdh更新版本.png

    升級cdh_1.png
  3. 它會提示你備份數(shù)據(jù)庫的相關數(shù)據(jù),當然也備份namenode的元數(shù)據(jù)。

  4. 等待cdh更新包的下載完成,然后分發(fā)激活。(比較花費時間,最好是先自己將parcel包下載好,再分發(fā)到各個服務器的/opt/cloudera/parcel-repo/目錄下,或者將遠程地址配置成公司內(nèi)部可用的地址。)

  5. parcel解壓激活后,點擊繼續(xù),檢查主機(可跳過),然后重啟集群。

  6. 選擇“完整群集重啟”后,點擊“繼續(xù)

  7. 如果升級過程遇到失敗后,修復問題后,繼續(xù)升級。

  8. 至此集群的整個升級過程都已完成,后面可通過查看hdfs文件看數(shù)據(jù)量的變化,也可向yarn提交任務驗證此次升級操作的準確性。

總結(jié)

  1. 升級過程是一個嚴謹?shù)牟僮?,必須按照特定的順序操作流程,且不容有差錯。
  2. 整個過程中比較耗時的都是集群在下載cm的安裝包和parcel的軟件包的步驟,這個我們可通過提交配置好環(huán)境來規(guī)避這一點,另外在下載parcel包時可以提前在本地下載好放到特定的目錄下面(/opt/cloudera/parcel-repo),因為集群內(nèi)部的分發(fā)速度是很快的。
  3. 升級之前最好要測試一下集群自身有問題沒,包括集群的重啟,namenode的ha的切換等等。
  4. 升級過程中遇到問題解決問題,不能瞎操作。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容