亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

玛多县| 克拉玛依市| 丰都县| 临猗县| 六安市| 黄山市| 九江市| 山东省| 肃北| 来安县| 鄂尔多斯市| 樟树市| 郴州市| 鄂伦春自治旗| 静安区| 曲麻莱县| 延吉市| 特克斯县| 临汾市| 商水县| 张家界市| 油尖旺区| 元朗区| 柯坪县| 平陆县| 金坛市| 萝北县| 榆树市| 嘉兴市| 保定市| 囊谦县| 普安县| 临沭县| 开化县| 兴海县| 汉寿县| 阿巴嘎旗| 尼勒克县| 乡城县| 商河县| 普格县|