成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

記一次CDH集群升級事故的解決

大數據
由于我們的應用系統是基于 Hive 的離線計算作業,hive升級不成功,應用應用無法啟動,該問題亟待解決。

[[385608]]

本文轉載自微信公眾號「明哥的IT隨筆」,作者IT明哥。轉載本文請聯系明哥的IT隨筆公眾號。   

 01問題現象

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

 

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

 

02問題分析

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

stdout.log:

 

stderr.log:

 

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

 

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

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

 

不幸的是,如上圖可見,出于保護敏感信息的需要,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 中也屏蔽了該信息,如下所示:

 

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

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

 

04問題解決

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

 

 

 


 

 

05HDFS 集群升級后的收尾

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

 

事實上,這是 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:

 

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

 

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 最終確認升級,也可以回滾到之前版本。

3. 相關命令如下:

hdfs dfsadmin -finalizeUpgrade

hdfs dfsadmin -rollingUpgrade [ | |]]

hdfs dfsadmin -upgrade [query | finalize]

hdfs namenode -upgrade | -rollback | rollingUpgrade

hdfs datanode -rollback | -rollingupgrade rollback

4. 參考鏈接如下:

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html

https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsRollingUpgrade.html

責任編輯:武曉燕 來源: 明哥的IT隨筆
相關推薦

2020-08-24 07:34:39

網絡超時請求

2021-04-13 08:54:28

dubbo線程池事故排查

2022-11-16 08:00:00

雪花算法原理

2020-09-25 07:57:42

生產事故系統

2025-03-11 08:48:35

JVMOOM事故

2022-10-10 17:52:08

CPUERP系統

2021-11-11 16:14:04

Kubernetes

2022-05-12 09:52:09

網絡架構HTTP跨域保護機制

2022-02-23 10:12:58

CPUWeb.NET

2019-09-11 08:22:57

MySQL數據庫遠程登錄

2019-01-16 09:20:42

架構設計JVM FullGC宕機事故

2013-01-17 10:31:13

JavaScriptWeb開發firebug

2021-05-13 08:51:20

GC問題排查

2023-01-16 14:49:00

MongoDB數據庫

2020-11-16 12:35:25

線程池Java代碼

2022-06-06 11:31:31

MySQL數據查詢

2022-07-11 13:58:14

數據庫業務流程系統

2023-06-07 07:31:04

PC端app脫殼技巧

2011-02-22 09:29:23

jQueryJavaScript

2013-04-01 10:27:37

程序員失業
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久高清| 欧美成视频在线观看 | 精品久久久久久亚洲精品 | 亚洲精品区 | 国产福利网站 | 国内毛片毛片毛片毛片 | 天堂一区二区三区 | 国产免费视频 | 夜夜操天天操 | 久久久久久久久91 | 亚洲精品久久久久中文字幕欢迎你 | 国产久 | 国产精品视频综合 | 久久久国产一区二区三区四区小说 | 欧美精品一区二区在线观看 | 日韩在线一区二区 | 日本免费视频在线观看 | 久久只有精品 | 精品成人佐山爱一区二区 | 日韩一区二区在线视频 | 天天操天天干天天爽 | 国产成人免费视频网站高清观看视频 | 黄色网址在线播放 | 一区二区三区在线观看视频 | 99精品视频一区二区三区 | 亚洲成人综合社区 | 国产一区二区三区在线视频 | 亚洲aⅴ | www免费视频 | 天天av天天好逼 | 欧美激情亚洲激情 | 欧美一区视频在线 | 国产成人精品视频在线观看 | 精品国产18久久久久久二百 | 国产视频精品区 | 日日摸日日碰夜夜爽2015电影 | 99日韩 | 成人精品视频 | 97人人爱 | 亚洲一区视频在线播放 | 国产一区二区在线播放 |