本文將詳細闡述如何將您已有的舊版數據湖集群(Hadoop),高效地遷移至數據湖集群(DataLake),以下分別簡稱“舊集群”和“新集群”。遷移過程將充分考慮舊集群的版本、元數據類型以及存儲方式,并針對這些因素,提供適應新集群的遷移策略與步驟。
背景信息
E-MapReduce(簡稱EMR)新版控制臺是EMR發布的下一代云原生開源大數據平臺,為用戶提供全新平臺體驗、全新開發平臺、全新資源形態和全新分析場景。新版控制臺的功能特點,詳情請參見EMR新版控制臺上線公告。
EMR on ECS作為EMR主要資源形態之一已實現多項功能更新,特別是EMR新版控制臺提供了DataLake、Dataflow、OLAP和Custom新集群業務場景,相比EMR舊版控制臺的集群場景(例如,Hadoop、Data Science等),在集群管控效能和引擎性能方面實現了顯著提升。數據湖集群(DataLake)作為舊版數據湖(Hadoop)的升級版,升級至數據湖集群(DataLake)后您將獲得多方面的顯著好處,詳細功能對比請參見數據湖集群。
準備工作
梳理舊集群整體架構
梳理當前大數據業務架構,明確舊集群應用場景,并關注以下信息:
服務范圍與版本:記錄每個舊集群上正在運行的服務范圍和版本信息,以便評估升級兼容性和功能更新需求。
元數據類型:確認舊集群采用的元數據類型(DLF、自建RDS),以規劃新架構中元數據管理系統的對接和遷移策略。
數據存儲架構:分析舊集群的數據存儲架構(本地HDFS、OSS、JindoFS block模式),為后續數據遷移路徑設計提供依據。
用戶認證&鑒權架構:確認是否使用舊平臺集群OpenLDAP、Ranger、Kerberos等服務,確保遷移后的新架構能夠無縫繼承現有的安全機制。
調度系統:請確認當前使用的開發和調度系統,以便在遷移過程中保持任務調度的一致性和平穩過渡。
如果有多個舊集群需要升級,建議采取逐個集群逐步遷移的方法,確保業務連續性和穩定性。根據業務的實際需求和優先級,制定出切實可行的遷移順序和計劃,確保將舊集群平滑遷移到新集群中。
梳理舊集群詳細信息
查看集群實例配置信息
在遷移至新平臺創建集群時,舊集群的實例基礎信息可應用于新集群,詳情請參見創建新集群。除了需要重點關注的軟件配置和硬件配置信息外,其余配置新舊集群可使用相同配置。
在EMR on ECS的舊集群的基礎信息和節點管理頁面,查看集群和節點組的配置信息,并重點關注以下信息。
配置類型
配置名稱
需要梳理的內容
軟件配置
集群版本
服務版本
實際使用的組件列表
Hive元數據類型
目前集群中使用的服務列表和對應的版本。
硬件配置
集群所在可用區
各節點組的規格及付費類型
集群所在可用區,以及各個節點組硬件配置情況。例如,CPU、內存、系統盤、數據盤等。
(可選)導出集群服務組件配置
在集群的日常運維中,用戶常常會根據實際需求對服務組件的默認配置進行個性化調整或添加額外自定義配置。為了高效地實現這些配置信息在不同集群間的遷移,可以充分利用EMR的配置導出功能,一次性批量導出原有集群的所有配置設置,在新集群初始化階段再批量導入這些配置,從而輕松快捷地完成服務組件配置的遷移工作。當然,如果不采用此批量操作方式,您也可選擇在新建集群成功啟動后,逐一在服務管理界面中手工修改和調整各項服務配置。
導出服務配置。
您可以參見導出和導入服務配置,一鍵導出目標服務組件的配置文件。
說明選擇配置文件:建議僅勾選編輯過的配置文件,可多選。
導出模式:當前Hadoop集群暫不支持只導出自定義或者修改過的配置。
文件導出格式:請選擇JSON格式,以便能夠方便導入新集群。
導出的配置文件各參數含義如下表所示。
參數
描述
ApplicationName
服務名。
ConfigFileName
配置文件名稱。
ConfigItemKey
配置項的名稱。
ConfigItemValue
配置項設置的具體值。
編輯配置文件。
請務必仔細審查從舊集群導出的配置信息,篩選出并保留適用于新環境的必要配置項,同時刪除不需要的配置。
調整YARN相關資源參數配置時,通常需要緊密關聯集群的實際硬件資源規格。因此,請務必確保新集群中導入的配置參數值是合理的。
如果配置了JindoFS相關的配置(例如,Credential Provider),建議參照OSS/OSS-HDFS的相關配置進行調整,詳情請參見配置OSS/OSS-HDFS Credential Provider。
將編輯后的配置文件應用于(可選)軟件自定義配置中,作為新集群的預設配置。
(可選)梳理引導操作
您可以在查看集群實例配置信息階段,查看舊集群是否配置了引導腳本。如果已添加引導操作腳本,應仔細評估每個腳本的功能,確認它們是否需要在新集群中繼續使用。
對于需要在新集群中繼續使用的引導腳本,請按照以下步驟進行調整,確保它們能在新集群中正常運行。
腳本修改完成后,將其上傳到OSS,并在新平臺集群創建過程中填入修正后的引導腳本OSS地址。
重要在將引導腳本部署至生產集群之前,請務必確保該腳本已在測試環境中驗證通過。
(可選)梳理舊集群彈性伸縮規則
舊平臺集群中如果配置了彈性伸縮規則,請查看已配置的彈性伸縮規則,重點關注信息(例如,最大實例數、最小實例數、優雅下線、觸發方式、觸發規則),并在新平臺集群創建完成后,重新配置彈性伸縮規則,詳情請參見添加彈性伸縮規則。
進入彈性伸縮頁面。
單擊目標集群的集群名稱。
單擊彈性伸縮頁簽。
查看彈性伸縮規則。
在彈性伸縮頁簽,單擊已配置彈性伸縮規則的節點組操作列的配置規則。重點關注以下信息:
最大實例數
最小實例數
優雅下線
觸發方式
觸發規則(擴容、縮容)
說明實例選擇方式、計費類型、實例規格、優雅下線等參數在新集群上配置在節點組屬性面板中,詳情請參見管理節點組。
(可選)查看舊平臺集群負載情況
查看集群資源負載可觀測舊集群日常資源水位,用于評估新集群所需的硬件配置。您也可以選擇先平滑遷移集群,即確保新舊平臺集群采用相同的硬件規格設置,后續再根據實際運行過程中的資源利用率對新集群的硬件資源配置進行調整。
方法一:查看集群監控
查看集群負載指標,重點關注YARN和HDFS的使用情況,詳情請參見查看服務監控指標。
方案二:查看EMR Doctor集群日報
Doctor集群日報中提供當前集群計算資源、YARN調度資源、HDFS存儲資源的全局分析,您可以查看集群已有數據總量、冷熱數據分布情況以及集群計算任務分布情況等信息,詳情請參見查看集群日報與分析。
說明EMR Doctor在舊平臺集群需要申請安裝,詳情請參見開通EMR Doctor(Hadoop集群類型)。
明確遷移方案和時間節奏
根據您當前大數據業務情況和實際每個舊集群配置情況,確定最終遷移目標,明確以下關鍵信息,并參考后續遷移步驟合理規劃人力資源和時間周期。
新集群所選產品版本和服務范圍,服務組件兼容性請參見產品版本及可選服務。
新集群元數據選型(DLF或自建RDS)
新集群存儲方案(OSS-HDFS或OSS)
步驟一:構建新環境集群
創建新集群
創建新集群的詳細步驟和參數說明,請參見創建集群,可以根據在查看集群實例配置信息中梳理出的集群參數進行填寫。以下配置參數需要重點關注。
產品版本及可選服務
您可以根據在查看集群實例配置信息中梳理出的服務列表,對照服務兼容信息,選擇新集群上服務的范圍和版本。
組件兼容性說明
隨著開源社區服務的版本更新,DataLake場景中部分服務的版本高于Hadoop中的服務版本。下表展示了高版本服務向下兼容情況。您可以根據舊集群軟件版本信息,結合以下表格中的信息,確定新集群的服務版本。
舊平臺集群服務
向下兼容區間1
向下兼容區間2
向下兼容區間3
向下兼容區間4
Spark
2.x
3.x
-
-
Hive
2.x
3.x
-
-
Tez
全部新舊版本兼容
-
-
-
Delta Lake
0.6.x
0.8.0-1.1.0
-
-
Iceberg
0.12.x
0.13.x
-
-
Hudi
0.6.x
0.8.x
0.9.x
0.10.x
Sqoop
全部新舊版本兼容
-
-
-
Ranger
1.x
2.x
-
-
OpenLDAP
全部新舊版本兼容
-
-
-
說明向下兼容性區間表示在該區間內的軟件版本,高版本可以兼容低版本。
以上服務兼容信息僅供參考,具體請以各服務在開源社區的官方描述為準。
由于開源社區活躍度變化和新技術更迭,部分開源服務不在EMR新平臺上繼續支持。
例如,Hue、Zeppelin、Ooize,建議遷移至EMR Notebook或EMR Workflow,或者在集群上自行搭建相應的引擎。
選擇合適的產品版本
重要在軟件版本滿足要求的情況下,建議選擇最新的EMR產品版本,以獲得更豐富的功能支持。
當前DataLake場景下,阿里云EMR產品提供了EMR-3.x和EMR-5.x兩個系列。每個系列中包含多個產品版本,這些不同版本中所集成的服務及其版本各異。在構建新集群時,您應根據自身數據湖應用場景以及目標服務的兼容性需求,為新集群選擇合適的產品版本。下表為您展示了舊集群與新平臺版本之間的對應關系。
舊集群版本信息
對應新集群版本信息
EMR-3.35.0:YARN 2.8.5、HDFS 2.8.5、Hive 2.3.7、Spark 2.4.7
EMR-3.x系列
EMR-5.6.0:YARN 3.2.1、HDFS 3.2.1、Hive 3.1.2、Spark 3.2.1
EMR-5.x系列
HDFS&OSS-HDFS選擇說明
在EMR-5.12.1及之后版本,EMR-3.46.1及之后版本中,您可以在可選服務中選擇采用HDFS或OSS-HDFS作為集群的存儲方式。
根據在明確遷移方案和時間節奏中明確的集群存儲方案,在新集群創建中配置可選服務時需要選擇對應的服務。
新平臺集群存儲方式
服務選擇
OSS
OSS-HDFS
OSS-HDFS
OSS-HDFS
說明當在可選服務參數中選擇了OSS-HDFS服務時,需要配置集群存儲根路徑,即選擇一個開通了OSS-HDFS服務的Bucket,作為集群的存儲根路徑。
選擇元數據
EMR新平臺支持以下元數據存儲方式,請根據明確遷移方案和時間節奏中確定的元數據存儲方案進行選擇。如果元數據需要遷移,請在新平臺集群創建完成后參見元數據遷移。
元數據存儲方式
說明
DLF統一元數據(推薦)
元數據存儲在數據湖構建DLF中。如果舊平臺已在使用DLF,可配置相同的DLF數據目錄,則新集群創建完成后自動對接同一份元數據,無需遷移元數據。
自建RDS
使用自建的阿里云RDS作為元數據庫。選擇該方式時,需要配置已有RDS相關的參數,詳情請參見配置自建RDS。
內置MySQL
元數據存儲在集群本地環境的MySQL數據庫中。
重要該方式僅用于測試場景,請勿用于生產環境。
(可選)軟件自定義配置
如果您導出了舊平臺集群中的服務配置,或計劃在創建集群流程中預置配置,則可以在新平臺集群創建流程中開啟軟件自定義配置,并將編輯好的配置粘貼輸入框中,詳細使用方法請參見配置自定義軟件。
硬件配置
在查看集群實例配置信息階段,您可以全面了解集群中各個節點的硬件配置信息。針對不同實例節點,例如Master、Core和Task,您應當根據業務需求為每個實例節點選擇合適的硬件資源配置。
建議在創建新集群時選用ECS最新的實例規格族以及云盤類型,以使用更新的硬件特性。
如需添加更多具有相同角色的節點組,可在集群創建完成后,通過新增節點組功能便捷地完成這一操作。
掛載公網:支持按節點組維度進行開啟。一旦開啟某個節點組的公網掛載功能,該節點組內所有節點均將分配公網IP。
當您需要通過公網登錄到主節點,或者使用EMR服務提供的訪問鏈接與端口映射功能時,必須為Master節點組開啟公網。
(可選)創建新版Gateway
Gateway主要用于向計算集群提交任務和進行安全隔離。如果您在舊平臺已經使用了Gateway集群,則可以參考以下信息在新平臺上進行Gateway的創建。
在新平臺上,EMR提供了更加靈活的Gateway部署方案,允許您在已有的ECS實例上部署Gateway,并自動同步計算集群的配置。為簡化Gateway環境的部署過程,EMR推出了一個名為EMR-CLI的工具,該工具可協助您在已有的阿里云ECS實例上輕松布置Gateway,詳情請參見使用EMR-CLI自定義部署Gateway環境。
步驟二:遷移及校驗
新集群環境構建完畢后,需要對舊集群元數據、數據和作業進行遷移。
元數據遷移
EMR新舊平臺均支持自建RDS、DLF和內置MySQL三種元數據管理方式。針對新平臺,我們強烈推薦您采用DLF元數據服務。根據新舊集群不同的元數據管理方式,有以下遷移方案。
舊平臺元數據方案 | 新平臺元數據方案 | 遷移方式 |
DLF | DLF | 無需重新遷移數據,只需確保新集群指向與舊集群相同的DLF數據目錄即可。 |
統一meta數據庫 | DLF | 詳情請參見EMR元數據遷移公告。 |
本地MySQL | DLF | 詳情請參見元數據遷移。 |
自建RDS | DLF | 詳情請參見元數據遷移。 |
數據遷移
在新集群創建完成后,根據新舊集群不同的存儲方式,提供以下遷移方式,以確保舊集群數據能夠順利且準確地遷移到新集群中。
舊集群存儲 | 新平臺存儲 | 遷移方式 |
OSS | OSS | 無需遷移數據。 |
OSS | OSS-HDFS | 使用JindoDistCp使用說明工具進行數據遷移。 |
JindoFS Block | OSS-HDFS | |
HDFS | OSS-HDFS |
數據正確性校驗
如果新集群不需要數據遷移,您可以跳過數據正確性校驗這一環節。
在成功完成新集群的數據遷移任務后,需要對HDFS數據以及Hive庫表等數據進行正確性驗證。一旦發現數據不一致的問題,應立即采取行動,例如重新運行受影響的任務、補充缺失數據等措施。
針對不同的數據校驗需求,您可以根據不同的校驗要求選擇對應的校驗方式。
校驗要求 | 校驗方式 |
文件校驗 | 通過計算文件的checkSum值進行比對,確保文件在遷移過程中未發生任何改變或損壞。 |
粗略數據校驗 | 適用于快速評估整體數據一致性,主要檢查表級別的統計信息,例如:核實表的總行數(count)、數字列的總和(sum)、平均值(avg)、最小值(min)以及最大值(max)。 |
詳細數據校驗 | 針對每行數據的詳盡核查,以保證所有數據項在遷移后與源集群完全一致,這種校驗方式能更深入地檢測數據的完整性和準確性。 |
作業遷移
為了確保舊集群的作業能在新集群上順利調度執行,針對不同的調度系統和環境,我們需要采取相應的遷移策略:
對于正在使用EMR舊版數據開發的用戶,需要遷移至EMR Workflow,詳情請參見EMR舊版數據開發遷移公告。
采用其他開發環境(例如,阿里云DataWorks或您自建的開發平臺)的用戶,則需依據各自所使用的開發環境提供的遷移指南進行操作。
請仔細參考對應平臺的具體遷移說明文檔,根據自身實際部署情況及業務需求調整相關配置,例如切換計算集群信息等關鍵設置,以確保作業能在新集群上正確調度執行。
步驟三:新舊集群并行雙跑校驗
在進行集群遷移時,為了最大限度地減少對線上業務的潛在影響,實施集群遷移時通常需要進行新舊集群間的雙跑校驗。這一過程涉及將線上流量復制至新集群,并同時在新集群上執行作業任務,通過這種方式對數據的一致性和業務的正確性進行全面校驗。
由于雙跑校驗的具體方式會根據您的實際開發環境、業務特性以及數據處理需求有所不同,因此強烈建議您在執行這一關鍵步驟時,結合自身業務場景和需求特點,靈活選擇并制定適宜的雙跑校驗方案。
步驟四:舊集群下線
在順利完成數據業務校驗之后,即可正式進行交付。通過分步驟地將舊集群上的作業負載逐步遷移至新集群,并在新集群上逐漸增加作業處理量,最終確保所有業務均能在新集群上穩定運行。
當舊集群的業務完全遷移到新集群,且舊集群已無任何業務運行時,可以參照釋放集群流程,對舊平臺集群進行安全、有序的釋放操作。