您好,登錄后才能下訂單哦!
我們的Cloudera Manager和cdh版本是5.14,現(xiàn)在公司需要升級到cdh7.2
需要先升級Cloudera Manager,然后升級cdh。
(參考
https://www.cloudera.com/documentation/enterprise/upgrade/topics/ug_cm_upgrade.html)
升級之前先確定linux的版本已經(jīng)升級到Cloudera Manager6.2支持的版本
###查看數(shù)據(jù)庫信息
$ sudo cat /etc/cloudera-scm-server/db.properties
得到類似如下信息:
...
com.cloudera.cmf.db.type=...
com.cloudera.cmf.db.host=database_hostname:database_port
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=SOME_PASSWORD
Create a top level backup directory.
$ export CM_BACKUP_DIR="`date +%F`-CM5.14"
$ echo $CM_BACKUP_DIR
$ mkdir -p $CM_BACKUP_DIR
Back up the Agent directory and the runtime state.
$ sudo -E 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
Back up the existing repository directory.
$ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
在安裝了Service Monitor 的機器上執(zhí)行:
$ sudo cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM5.14
在安裝了Host Monitor 的機器上執(zhí)行:
$ sudo cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM5.14
在安裝了Event Server的機器上執(zhí)行:
$ sudo cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM5.14
$ mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM5.14.sql
Create a top-level backup directory.
$ export CM_BACKUP_DIR="`date +%F`-CM5.14"
$ echo $CM_BACKUP_DIR
$ mkdir -p $CM_BACKUP_DIR
$ Back up the Cloudera Manager Server directories:
$ sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server
Back up the existing repository directory.
$ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
登陸Cloudera Manager Server節(jié)點,刪除原有yum源
$ sudo rm /etc/yum.repos.d/cloudera*manager.repo*
創(chuàng)建新的yum源文件
$ sudo vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
# Packages for Cloudera Manager
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/
gpgkey=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/RPM-GPG-KEY-cloudera
gpgcheck=1
在server的配置文件中配置java_home:
在/etc/default/cloudera-scm-server
增加JAVA_HOME
export JAVA_HOME="/usr/java/jdk1.8.0_162"
1.登錄Cloudera Manager Server主機。
2.停止Cloudera管理服務。 (要點:此時不停止Cloudera Management Service可能會導致管理角色崩潰或Cloudera Manager Server可能無法重新啟動。)
步驟:
3.停止Cloudera Manager Server.
$ sudo service cloudera-scm-server stop
4.停止Cloudera Manager Agent.
$ sudo service cloudera-scm-agent stop
5.升級Cloudera packages.
$ sudo yum clean all
$ sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent -y
6.確認下包安裝好了
$ rpm -qa 'cloudera-manager-*'
7.啟動Cloudera Manager Agent.
$ sudo service cloudera-scm-agent start
8.啟動Cloudera Manager Server.
$ sudo service cloudera-scm-server start
啟動過程中如果有問題可以參考日志文件:
$ tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
$ tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
$ tail -f / var / log / messages
9.正常的話打開cdh升級頁面就可以看到升級的情況了
http://cloudera_Manager_server_hostname:7180/cmf/upgrade
a.使用CDH界面升級
點擊 Cloudera Manager Agent軟件包
選項1:選擇agent存儲庫
我們使用公共庫就可以了
選擇 Public Cloudera Repository
2.安裝JDK
已經(jīng)安裝了就不用選擇了
3.安裝agent
配置一下root或者sudo賬號就可以了,需要能訪問所有agent節(jié)點的權限
選項2:使用命令升級
清除老的repo文件
$ sudo rm /etc/yum.repos.d/cloudera*manager.repo*
新建repo文件:
$ sudo vim /etc/yum.repos.d/cloudera-manager.repo
repo文件內(nèi)容:
[cloudera-manager]
# Packages for Cloudera Manager
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/
gpgkey=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/RPM-GPG-KEY-cloudera
gpgcheck=1
停止Cloudera Manager agent服務
$ sudo service cloudera-scm-agent stop
升級Cloudera Manager agent
$ sudo yum clean all
$ sudo yum repolist
$ sudo yum upgrade cloudera-manager-daemons cloudera-manager-agent -y
等到所以機器都完成了之后,每個agent節(jié)點執(zhí)行
$ sudo service cloudera-scm-agent start
查看
http://192.168.0.254:7180/cmf/upgrade
顯示所有機器的agent都已經(jīng)升級,且都有心跳
點擊 Host Inspector,檢測一下節(jié)點的情況
完成之后點擊 顯示檢查器結果,查看有問題的項,修復。
顯示的問題中有個比較重要的:如果后續(xù)要運行CDH6,hue需要使用python2.7,先記著,暫時不管。
然后,啟動Cloudera Management Service
如果升級失敗,需要還原,可以參考官方的步驟:
https://www.cloudera.com/documentation/enterprise/upgrade/topics/ug_cm_downgrade.html
升級之前先確定linux的版本已經(jīng)升級到CDH6.2支持的版本,java版本為1.8
登錄到CDH管理頁面,啟動hdfs服務
然后運行以下命令檢查集群情況
如果有問題則修復
檢查hdfs:
$ sudo -u hdfs hdfs fsck / -includeSnapshots
$ sudo -u hdfs hdfs dfsadmin -report
檢查hbase表中的一致性:
$ sudo -u hdfs hbase hbck
如果使用了kudu,檢查kudu:
$ sudo -u kudu kudu cluster ksck <master_addresses>
以下服務在6.0.0中已經(jīng)沒有了,升級之前,需要停止并且刪除這些服務
Accumulo
Sqoop 2
MapReduce 1
Spark 1.6
Record Service
以下CDH組件不需要備份:
·MapReduce
·YARN
·Spark
·Pig
·Impala
升級CDH前完成以下備份的步驟
1.Back Up Databases
我們使用mysql,所以以mysq為例
1)如果尚未停止,請停止服務。如果Cloudera Manager指示存在依賴服務,則還要停止依賴服務。
2)備份各個服務(Sqoop, Oozie, Hue,Hive Metastore ,Sentry)的數(shù)據(jù)庫。替換數(shù)據(jù)庫名稱,主機名,端口,用戶名和備份目錄路徑,然后運行以下命令:
$ mysqldump --databases database_name --host = database_hostname --port = database_port -u database_username -p> backup_directory_path / database_name -backup -`date +%F`-CDH 5.14 .sql
2.Back Up ZooKeeper
在每臺zookeeper節(jié)點,備份cdh中配置的zookeeper的數(shù)據(jù)存儲目錄,如
$ sudo cp -rp /var/lib/zookeeper/ /var/lib/zookeeper-backup-`date +%F`CM-CDH5.14
3.Back Up HDFS
(命令中的數(shù)據(jù)路徑根據(jù)cdh中實際配置更改)
$ sudo cp -rp /data/dfs/jn /data/dfs/jn-CM-CDH5.14
$ mkdir -p /etc/hadoop/conf.rollback.namenode
$ cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-NAMENODE\$" | head -1`
$ cp -rp * /etc/hadoop/conf.rollback.namenode/
$ rm -rf /etc/hadoop/conf.rollback.namenode/log4j.properties
$ cp -rp /etc/hadoop/conf.rollback.namenode/log4j.properties /etc/hadoop/conf.rollback.namenode/
這些命令創(chuàng)建臨時回滾目錄。如果稍后需要回滾到CDH 5.x,則回滾過程要求您修改此目錄中的文件。
$ mkdir -p /etc/hadoop/conf.rollback.datanode/
$ cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-DATANODE\$" | head -1`
$ cp -rp * /etc/hadoop/conf.rollback.datanode/
$ rm -rf /etc/hadoop/conf.rollback.datanode/log4j.properties
$ cp -rp /etc/hadoop/conf.cloudera.hdfs/log4j.properties /etc/hadoop/conf.rollback.datanode/
4.Back Up Key Trustee Server and Clients
服務沒有使用
5.Back Up HSM KMS
服務沒有使用
6.Back Up Navigator Encrypt
服務沒有使用
7.Back Up HBase
由于回滾過程還會回退HDFS,因此HBase中的數(shù)據(jù)也會回滾。此外,存儲在ZooKeeper中的HBase元數(shù)據(jù)將作為ZooKeeper回滾過程的一部分進行恢復。
8.Back Up Search
服務沒有使用
9.Back Up Sqoop 2
服務沒有使用
10.Back Up Hue
在運行Hue Server角色的所有主機上,備份app注冊表文件
$ mkdir -p /opt/cloudera/parcels_backup
$ cp -rp /opt/cloudera/parcels/CDH/lib/hue/app.reg /opt/cloudera/parcels_backup/app.reg-CM-CDH5.14
對于centos6版本的系統(tǒng):
需要在hue的節(jié)點安裝python2.7
Enable the Software Collections Library:
$ sudo yum install centos-release-scl
$ Install the Software Collections utilities:
$ sudo yum install scl-utils
$ Install Python 2.7:
$ sudo yum install python27
Verify that Python 2.7 is installed:
$ source /opt/rh/python27/enable
$ python --version
1.HBase 2.0 不支持PREFIX_TREE數(shù)據(jù)塊編碼,升級前需要先刪除,否則hbase2.0無法啟動
如果你已經(jīng)安裝了CDH6.那么通過運行以下工具來確保所有表或快照都不使用PREFIX_TREE數(shù)據(jù)塊編碼:
$ hbase pre-upgrade validate-dbe
$ hbase pre-upgrade validate-hfile
2.升級協(xié)處理器類
外部協(xié)處理器不會自動升級。有兩種方法可以處理協(xié)處理器升級:
在繼續(xù)升級之前,請手動升級協(xié)處理器jar。
暫時取消協(xié)處理器的設置并繼續(xù)升級。
手動升級后,可以重置它們。
嘗試在不升級協(xié)處理器jar的情況下進行升級可能會導致不可預測的行為,例如HBase角色啟動失敗,HBase角色崩潰,甚至數(shù)據(jù)損壞。
如果您已經(jīng)安裝了CDH 6,則可以通過運行來確保您的協(xié)處理器與升級兼容 hbase pre-upgrade validate-cp 工具。
當使用Cloudera Manager Backup and Disaster Recovery (BDR)將集群從Cloudera Manager 5.13或更低版本升級到CDH 6.0或更高版本時,使用Cloudera Manager Backup and Disaster Recovery (BDR)備份數(shù)據(jù)將不起作用。
用于執(zhí)行升級的次要版本的Cloudera Manager必須等于或大于CDH次要版本。要升級Cloudera Manager
注意:
使用滾動重新啟動(僅限次要升級)升級CDH時:
自動故障轉移不會影響滾動重新啟動操作。
升級完成后,如果當前正在運行MapReduce或Spark作業(yè),請不要刪除舊的塊。這些作業(yè)仍使用舊的塊,必須重新啟動才能使用新升級的塊。
確保Oozie工作是冪等的。
不要使用Oozie Shell Actions來運行與Hadoop相關的命令。
不支持滾動升級Spark Streaming作業(yè)。升級完成后重新啟動流作業(yè),以便開始使用新部署的版本。
必須將運行時庫打包為Spark應用程序的一部分。
您必須使用分布式緩存從客戶端網(wǎng)關計算機傳播作業(yè)配置文件。
不要構建包含第三方依賴項或CDH類的“超級”或“胖”JAR文件,因為這些文件可能與Yarn,Oozie和其他服務自動添加到CLASSPATH的類沖突。
在不捆綁CDH JAR的情況下構建Spark應用程序。
在cloudera manager升級之前我們備份了一次,在升級之后還需要備份一次。
$ cat /etc/cloudera-scm-server/db.properties
例如:
com.cloudera.cmf.db.type=...
com.cloudera.cmf.db.host=database_hostname:database_port
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=SOME_PASSWORD
在每臺agent節(jié)點上執(zhí)行:
$ export CM_BACKUP_DIR="`date +%F`-CM5.14"
$ echo $CM_BACKUP_DIR
$ mkdir -p $CM_BACKUP_DIR
備份agent目錄和運行時狀態(tài)
$ sudo -E 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
$ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
備份Cloudera Management Service
在Service Monitor節(jié)點執(zhí)行
$ sudo cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM5.14
在Host Monitor節(jié)點上執(zhí)行
$ sudo cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM5.14
在Event Server節(jié)點上執(zhí)行
$ sudo cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM5.14
在CDH管理界面中停止Cloudera Management Service,選擇:
Clusters->Cloudera Management Service.
Actions > Stop.
停止 Cloudera Manager Server:
$ sudo service cloudera-scm-server stop
$ mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM5.14.sql
數(shù)據(jù)庫信息為剛才第一步中查看文件中獲取的信息
在Cloudera Manager Server節(jié)點執(zhí)行:
1.創(chuàng)建一個備份目錄:
$ export CM_BACKUP_DIR="`date +%F`-CM5.14"
$ echo $CM_BACKUP_DIR
$ mkdir -p $CM_BACKUP_DIR
2.備份 Cloudera Manager Server的目錄
$ sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server
3.備份當前repo目錄
4.
$ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
要在升級過程中避免不必要的警報,請在開始升級之前在群集上進入維護模式。 進入維護模式會停止發(fā)送電子郵件警報和SNMP陷阱,但不會停止檢查和配置驗證。完成升級后,請務必退出維護模式以重新啟用Cloudera Manager警報。
1.確保在升級完成之前,不會將新應用程序(如MapReduce或Spark應用程序)提交到群集。
2.打開CDH管理界面,進入到要升級的YARN服務
3.在 實例 選項卡上,選擇所有NodeManager角色。這可以通過過濾角色類型下的角色來完成
4.點擊 已選定的操作 -> 解除授權
如果群集運行CDH 5.9或更高版本并由Cloudera Manager 5.9或更高版本管理,并且您配置了正常解除授權,則會啟動超時倒計時。
平滑退役開始停止使用過程之前提供了一個超時。超時會創(chuàng)建一個時間窗口,以便從系統(tǒng)中消耗已經(jīng)運行的工作負載,并允許它們運行完成。在YARN服務的Configuration選項卡上搜索Node Manager Graceful Decommission Timeout字段,并將該屬性設置為大于0的值以創(chuàng)建超時。
5.等到解除授權完成。完成后,NodeManager的狀態(tài)為 停止,授權狀態(tài) 為 解除授權。
6.選中所有NodeManagers,點擊 已選定的操作 -> 重新授權。
(6這一步不做的話后面升級過程中會報錯,而且很難找到原因,會在yarn升級的過程中報這樣的一個:
Caused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): Requested replication factor of 0 is less than the required minimum of 1 for /user/yarn/mapreduce/mr-framework/3.0.0-cdh7.2.0-mr-framework.tar.gz)
查詢語法,DDL語法和Hive API都有變化。在升級之前,您可能需要在應用程序工作負載中編輯HiveQL代碼。
sentry
如果群集使用Sentry策略文件授權,則必須先將策略文件遷移到數(shù)據(jù)庫支持的Sentry服務,然后再升級到CDH 6。
如果群集使用Hue,請執(zhí)行以下步驟(維護版本不需要)。這些步驟清理Hue使用的數(shù)據(jù)庫表,可以幫助提高升級后的性能。
1.備份Hue數(shù)據(jù)庫。
2.連接到Hue數(shù)據(jù)庫。
3.檢查desktop_document,desktop_document2,oozie_job,beeswax_session,beeswax_savedquery和beeswax_queryhistory表的大小以獲得參考點。如果其中任何行超過10萬行,請運行清理。
1.打開CDH管理界面,點擊 主機 -> Parcels -> 配置
2.使用以下遠程parcel存儲庫URL更新CDH的Parcel存儲庫:
a.在 遠程 Parcel 存儲庫 URL 部分中,單機 "+"圖標添加上面的url,單擊 保存更改
b.在表中找到包含新CDH parcel的行,然后單擊“ 下載”按鈕。
c.下載包后,單擊“ 分配”按鈕。
d.分發(fā)完所有包裹后,點擊 升級 按鈕。
1.進入升級向導后,會運行一些集群的check,check的結果可能會出現(xiàn)一些問題,會影響到后續(xù)的升級,先把這些問題解決。還會有備份數(shù)據(jù)庫的提示。如果都已經(jīng)ok了,點擊 是,我已執(zhí)行這些步驟,然后點擊 繼續(xù)。
2.點擊 完整群集重啟 (群集的全部停機時間),點擊 繼續(xù)。(這個步驟會重啟所有服務)
升級過程中Oozie異常提示:
1.E0103: Could not load service classes, Cannot create PoolableConnectionFactory (Table 'oozie.validate_conn' doesn't exist)
解決方案:
2.“java.lang.ClassNotFoundException:org.cloudera.log4j.redactor.RedactorAppender”找不到類。
參考這篇文章,把缺少的logredactor-2.0.7.jar建一個軟連接從/opt/cloudera/parcels/CDH/lib/oozie/lib到/opt/cloudera/parcels/CDH/lib/oozie/libtools目錄下
3.ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
原因是log4j.xml沒有配置導致異常信息無法顯示,同樣考一份log4j.xml的模版放到/opt/cloudera/parcels/CDH/lib/oozie/libtools目錄下即可。
用于在CDH 5中提交Spark 2作業(yè)的命令(spark2-submit)在CDH 6中刪除,
替換為 spark-submit。在具有內(nèi)置Spark 1.6服務和Spark 2服務的CDH 5集群中,spark-submit 與Spark 1.6服務一起使用,和spark2-submit與Spark 2服務一起使用。升級到CDH 6后,spark-submit 使用CDH內(nèi)置的Spark 2服務, spark2-submit不再起作用。確保使用這些命令更新提交Spark作業(yè)的任何工作流。
impala主要用于即時查詢,不用于線上任務,所以重要性沒有那么高,參考官網(wǎng)
https://www.cloudera.com/documentation/enterprise/upgrade/topics/impala_upgrading.html
即可。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。