中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CDH集群升級事故的解決方法是什么

發布時間:2021-12-07 15:34:50 來源:億速云 閱讀:208 作者:柒染 欄目:大數據

本篇文章為大家展示了CDH集群升級事故的解決方法是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

 01問題現象

某日明哥接到求助,集群運維人員在通過 cloudera manager 的 upgrade cluster 選項 (見下圖一),升級 cdh  集群時遇到了問題,卡在了 "Execute command Upgrade Hive Metastore Database Schema on service  Hive" 這一步。由于我們的應用系統是基于 Hive 的離線計算作業,hive升級不成功,應用應用無法啟動,該問題亟待解決。

CDH集群升級事故的解決方法是什么

"Execute command Upgrade Hive Metastore Database Schema on service Hive"  這一步前的步驟是執行成功的,包括HDFS的升級:

CDH集群升級事故的解決方法是什么

02問題分析

查看cm頁面上執行 "Execute command Upgrade Hive Metastore Database Schema on service  Hive" 這一步時的 stdout 和 stderr 日志,其內容如下(頁面日志沒來得及截圖,以下截圖是當時復制出來的頁面日志的內容):

stdout.log:

CDH集群升級事故的解決方法是什么

stderr.log:

CDH集群升級事故的解決方法是什么

查看hive metastore database 升級腳本的內容:

CDH集群升級事故的解決方法是什么

可見該升級腳本只是更改了 hive 的 mysql metastore db,更新了 hive 庫中 DBS 表的結構 (增加了一列  create_time);并更新了 cdh_version表的一條記錄。

如此簡單的 ddl 語句和 dml  語句會執行失敗,很可能的原因是使用的數據庫用戶名和密碼不對或沒有更新權限。我們需要驗證下使用的用戶名和密碼是否正確,以及是否有相應的權限。這些連接信息和用戶名密碼信息是在  cm 中 hive 配置頁面指定的:

CDH集群升級事故的解決方法是什么

不幸的是,如上圖可見,出于保護敏感信息的需要,cm 頁面屏蔽了用戶配置的 hive metastore db 的用戶密碼。

(事實上 stdout.log 日志中也告訴了我們連接信息和用戶名信息,跟上述配置是一致的:Metastore connection URL 是  jdbc:mysql://node1:3306/hive?useUnicode=true&characterEncoding=UTF-8;Metastore  connection User 是 root。)

所以接下來,我們的思路是,拿到 hive metastore db 需要使用的正確的用戶名和密碼,并在上述頁面配置下,再次重試集群升級步驟。

03如何獲取 hive metastore db 的用戶名和密碼呢?

如何獲取 hive metastore db 的用戶名和密碼呢?

方法一:找集群管理員索取。

該方法是可行的,但由于hive metastore db  的用戶名和密碼,是在初次搭建集群是設置的,集群搭建完畢后正常使用過程中很少會使用到該用戶名和密碼,日常越久可能集群管理員也會忘記最初的用戶名和密碼。(集群多了也可能會搞混淆)

方法二:查看配置文件hive-site.xml 獲取。

該方法在 hive 的早期版本是可行的,但在1.x 后(不記得具體的版本了。。。),同樣出于保護敏感信息的原因,hive-site.xml  中也屏蔽了該信息,如下所示:

CDH集群升級事故的解決方法是什么

方法三:通過 curl 訪問 cm 提供的特定 restful 接口獲取集群配置信息,包括 hive metastore 用戶名和密碼。

該接口的地址和訪問方式是:curl -u cm-user:cm-pwd  "http://cm-host:7180/api/v19/cm/deployment",示例如下:

CDH集群升級事故的解決方法是什么

04問題解決

在通過上述方法三,拿到了 hive metastore db 的正確用戶名和密碼后,在 hive  配置頁面配置完畢正確的用戶名和密碼后,再次嘗試升級集群(通過在 cm 的 Running Commands 頁面,resume 恢復 upgrade  cluster 命令即可),集群升級正確執行,直至結束,如下所示:

CDH集群升級事故的解決方法是什么


CDH集群升級事故的解決方法是什么

05HDFS 集群升級后的收尾

做過 hdfs 集群升級的小伙伴,會留意到,通過以上步驟升級完畢集群后,hdfs 集群可以正常對外提供讀寫服務,但在 hdfs 的 web  頁面會有個提示信息 "upgrade in progress. not yet finalized",如下所示:

CDH集群升級事故的解決方法是什么

事實上,這是 hdfs 有意為之的升級機制:hdfs 允許用戶在集群升級完畢后,再次對集群進行充分的業務測試和驗證,確保一切無誤后,才來 finalize  , 即 commit 整個 update;如果業務驗證失敗,可以回滾到升級前的版本。"Finalizing upgrade is separate  process that should be invoked manually after you confirm that data migration  went well。"

我們執行命令 hdfs dfsadmin -finalizeUpgrade 進行升級后的 finalize:

CDH集群升級事故的解決方法是什么

再次查看hdfs web ui,提示信息不見了:

CDH集群升級事故的解決方法是什么

06key take-aways

匯總下知識點:

1. hive metastore db 的用戶名和密碼,可以通過以下命令獲得:

curl -u cm-user:cm-pwd "http://cm-host:7180/api/v19/cm/deployment"

2. hdfs 集群升級完畢后,可以執行 hdfs dfsadmin -finalizeUpgrade 最終確認升級,也可以回滾到之前版本。

上述內容就是CDH集群升級事故的解決方法是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

cdh
AI

施秉县| 扎囊县| 旬邑县| 台湾省| 镇安县| 平阳县| 贡觉县| 城市| 安吉县| 重庆市| 台山市| 天气| 乌兰浩特市| 蕲春县| 德昌县| 镇康县| 玛曲县| 弥渡县| 吐鲁番市| 东平县| 牡丹江市| 黎平县| 驻马店市| 济南市| 秦皇岛市| 永靖县| 郓城县| 沙雅县| 湘乡市| 霍城县| 富阳市| 安塞县| 武强县| 伊川县| 崇信县| 西乌珠穆沁旗| 徐水县| 景德镇市| 威信县| 合阳县| 福海县|