最佳化資料處理效率,解讀 EasyMR 大資料元件升級

袋鼠云数栈發表於2024-07-31

EasyMR 作為袋鼠雲基於雲原生技術和 Hadoop、Hive、Spark、Flink、Hbase、Presto 等開源大資料元件構建的彈性計算引擎。此前,我們已就其展開了多方位、多角度的詳盡介紹。而此次,我們成功接入了大資料元件的升級和回滾功能,能夠藉助 EasyMR 來掌控大資料元件的升級與回滾流程。

在本文中,我們就將為大家詳細介紹在 EasyMR 中如何接管大資料元件的升級和回滾流程。

傳統大資料元件升級

大資料技術當下是全球各行業的核心技術之一,其核心要義在於把資料拆解為更小的資料塊,然後在分散式的環境中加以處理。Hadoop 和 Spark 作為當前最流行的大資料處理框架,它們透過不同的方法來實現這一目標。

而在傳統的大資料元件升級流程中,通常會遵循以下幾個步驟:

● 環境準備

· 確保當前環境滿足新版本 Spark 和 Hive 的依賴要求

· 備份當前的配置檔案和重要資料

● 下載軟體

· 從官方網站下載新版本的 Spark 和 Hive 安裝包

● 停止服務

· 在升級前,停止所有正在執行的 Hadoop、Hive 和 Spark 服務

● 替換安裝包

· 將下載的新版本 Spark 和 Hive 安裝包替換舊版本的安裝包

● 配置 Hive

· 解壓 Hive 安裝包並重新命名目錄

· 修改 hive-site.xml 配置檔案,將舊版本的配置檔案複製到新版本中,並根據新版本的要求進行必要的修改和更新

· 將 MySQL 的 JDBC 驅動放到 Hive 的 lib 目錄下

● 配置 Spark

· 解壓 Spark 安裝包

· 配置 spark-env.sh 和 spark-defaults.conf 檔案,將舊版本的配置檔案複製到新版本中,並根據新版本的要求進行必要的修改和更新

· 將 Spark 的 jar 包上傳到 HDFS 的特定目錄下

● Hive 後設資料升級

· 如果 Hive 版本有變更,可能需要使用 schematool 工具來升級 Hive 的後設資料儲存

● 啟動服務

· 啟動 Hadoop 叢集和 MySQL 服務

· 啟動 Hive 服務,包括 Metastore 和 HiveServer2

● 重新配置整合

· 根據新版本的要求重新配置 Spark 與 Hive 的整合,包括更新 hive-site.xml 和 spark-defaults.conf 檔案

● 測試驗證

· 啟動 Hadoop、Hive 和 Spark 服務,執行測試查詢以驗證升級是否成功

在上述流程中,我們能夠明顯看出升級流程的繁瑣。同時,大資料元件部署之間存在一定差異,例如:hbase 與其他元件不同,需要備份 zookeeper。這意味著在部署時,我們首先要將各個元件間升級的差異點和升級方案進行總結。

鑑於 Hadoop 本身的複雜性,運維人員在進行升級操作時,需要確認升級方案有無遺漏之處,一旦出現步驟遺漏,便會致使升級失敗,嚴重情況下還可能造成資料丟失。

EasyMR 接管大資料元件升級

考慮到上述傳統 Hadoop 升級所產生的複雜狀況,我們決定把這種複雜性交由平臺來處理,由平臺接管升級過程中不同元件的差異性操作以及配置檔案備份等相關操作,將簡單的操作邏輯呈現給使用者。

接下來,我們將從 Hive、HBase 和 Spark 元件的升級方面,來介紹 EasyMR 是如何接管大資料元件的升級流程的。

Hadoop 部署

主機模式下部署 Hadoop 時,我們需要下載 Hadoop 的安裝包,並依照步驟逐步進行操作。然而,在 EasyMR 上,我們僅需按照打包文件把打包好的產品包上傳至 EasyMR 平臺,即可實現一鍵部署。

file

選擇需要部署的 Hadoop 服務。

file

先分配服務需要部署的節點,隨後執行部署,等待一段時間,若沒有問題,便完成了 Hadoop 元件的部署工作。

Hadoop 的升級也僅需按照上述流程操作即可,EasyMR 會首先自動停止並解除安裝舊服務,並且備份舊的配置檔案。在上述流程順利透過後,再進行新版本的部署。

file

Hive 升級

上面我們已回顧了 Hadoop 元件的部署方式,接下來正式介紹 Hive 元件從 3.1.2 版本升級到 3.2.2 版本的具體步驟。

file

在 Hive 的升級過程中,需要先利用 mysqldump 工具對 MySQL 資料庫進行備份,只有當備份成功後,方可進行後續的升級操作。

file

升級流程將按照 Hadoop 升級邏輯分配服務節點進行部署。

file

HBase 升級

HBase 升級和 Hive 升級存在差異。Hive 升級首先得備份資料庫,HBase 卻不用,只需操作人員在部署時確認 HBase 的相容性問題就行。

file

後續同樣按照升級流程,勾選產品包部署服務,分配服務部署節點即可。

Spark 升級

Spark 升級時需要留意的是,有無正在執行的任務。在 Spark 升級前,會獲取 yarn_resourcemanager 上執行中的任務狀態,若存在,會給出提示。然後由操作人員依據當前狀況決定是否強制升級。

file

平臺管控備份流程

上面介紹了使用者層面能感知到的不同服務升級的差異,下面來講一講在程式後臺我們開展的那些操作。

· 每次升級回滾,後臺會自動將 conf 配置檔案備份,防止配置丟失

file

· 在 HBase 升級流程中,會先備份 zookeeper 的服務資料

file

· 然後透過 grpc 服務呼叫 hbase_bak 備份指令碼,對 Hadoop 的服務資料進行備份

file

經過上述操作,我們可以很輕鬆地在 EasyMR 上完成大資料元件的升級和回滾操作,其餘服務也能透過類似步驟操作完成。

總結

在 AI 蓬勃發展的時代,資料已然成為 AI 應用中至關重要的一個環節。EasyMR 作為國產的大資料引擎,將會在大資料領域展開更為深入的探索,致力於簡化大資料工具的操作難度,提高運維人員的工作效率。

《行業指標體系白皮書》下載地址:https://www.dtstack.com/resources/1057?src=szsm

《數棧產品白皮書》下載地址:https://www.dtstack.com/resources/1004?src=szsm

《資料治理行業實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或諮詢更多有關大資料產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szbky

相關文章