本文以阿里雲EMR Hive離線同步寫入MaxCompute情境為例,為您介紹如何一次性把EMR Hive整個資料庫的資料離線同步至MaxCompute。
背景資訊
Hive是基於Hadoop的一個資料倉儲工具,用來進行資料的提取、轉化、載入,可以儲存、查詢和分析儲存在Hadoop中的大規模資料。Hive資料倉儲工具能將結構化的資料檔案映射為一張資料庫表,並提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行。Data Integration支援從Hive同步資料到其他目標端,也支援從其他目標端同步資料到Hive。
添加資料來源
建立MaxCompute資料來源
新增MaxCompute資料來源。詳情請參見建立MaxCompute資料來源。
建立Hive資料來源
在DataWorks資料來源管理頁面,單擊建立資料來源,根據介面提示手動添加Hive資料來源。Hive資料來源包括阿里雲執行個體模式,串連串模式,CDH叢集內建模式三種類型,若您配置的資料來源為阿里雲EMR,推薦您使用阿里雲執行個體模式配置資料來源;若您配置的資料來源非阿里雲EMR,您可以使用串連串模式配置資料來源;若您的專案空間配置了CDH引擎,您可以通過CDH叢集內建模式配置資料來源。詳情請參見配置Hive資料來源。
準備獨享Data Integration資源群組並與EMR Hive網路連通
在進行資料同步前,需要完成您的獨享Data Integration資源群組和資料來源的網路連通,詳情請參見配置網路連通。
如果您的獨享Data Integration資源群組和EMR資料來源屬於同一地區,可使用同地區VPC內網連通獨享資源群組和資料來源。實現網路連通需要執行:步驟1 新增專用網路綁定和自訂路由。
如果您的獨享Data Integration資源群組和資料來源屬於不同地區,可使用公網連通獨享資源群組和EMR資料來源。此時需要確保EMR安全性群組針對獨享資源群組所在網段允許存取叢集連接埠(一般包括10000、9093、8020等連接埠),詳情請參見:步驟2 EMR 叢集安全性群組策略允許存取。
步驟1 新增專用網路綁定和自訂路由
如果您使用公網連通獨享資源群組和資料來源,可跳過此步驟。
新增專用網路綁定。
進入DataWorks管控台資源群組列表頁面,找到您要連通的獨享Data Integration資源群組,單擊資源群組右側的網路設定,進入資源群組網路設定頁面。
在專用網路綁定頁簽下,單擊新增綁定,在彈出的新增專用網路綁定視窗中,填寫專用網路資訊。
專用網路:請選擇EMR所在的專用網路。
可用性區域、交換器:優先選擇EMR所在的可用性區域和交換器;如果所在的可用性區域不可選擇,則選擇其他任意可用性區域和交換器。但您需要確保VPC網路跟資料來源所在的VPC網路可連通。
安全性群組:選擇EMR叢集的安全性群組,所選擇的安全性群組需滿足以下條件:
在安全性群組產品控制台查看安全性群組,訪問規則的入方向允許允許存取EMR叢集連接埠(一般包括10000、9093、8020等連接埠)。
安全性群組的授權對象網段包含上一步所選擇的交換器網段。
添加自訂路由。
說明如果您在上述步驟中選擇了資料來源所在的可用性區域和交換器,可跳過此步驟。如果您選擇了其他可用性區域和交換器,則需要參考以下指導進行自訂路由的操作。
進入DataWorks管控台資源群組列表頁面,找到您要連通的獨享Data Integration資源群組,單擊資源群組右側的網路設定,進入資源群組網路設定頁面。
在專用網路綁定頁簽下,找到剛才綁定的專用網路記錄,單擊右側的自訂路由。
在彈出的自訂路由視窗,單擊新增路由,填寫路由資訊,關鍵配置資訊如下。
目的VPC:選擇EMR所在的地區和專用網路。
目的Switch執行個體:選擇EMR所在的交換器。
步驟2 EMR叢集安全性群組策略允許存取
如果您使用公網聯通獨享資源群組和EMR,則EMR叢集安全性群組策略需要對獨享資源群組的EIP地址做相應的連接埠允許存取。安全性群組訪問規則的入方向允許允許存取EMR叢集訪問連接埠(一般包括10000、9093、8020等連接埠)。
您可以在獨享資源群組列表頁面單擊查看資訊按鈕,獲得EIP地址。
您可以在EMR控制台,點擊目的地組群名稱,進入詳情頁面。
點擊節點管理頁簽,在節點群組名稱/ID列單擊開啟目標節點群組,在對應的節點中點擊圖表,在節點詳情頁,將擷取到的EIP地址,加入安全性群組。
建立離線同步節點
建立商務程序。詳情請參見:建立商務程序。
建立離線同步節點。
你可以通過以下兩種方式建立離線同步節點:
方式一:展開商務程序,按右鍵
。方式二:雙擊商務程序名稱,然後單擊建立節點,將Data Integration目錄下的離線同步節點直接拖拽至右側商務程序編輯面板。
根據介面提示建立離線同步節點。
配置同步網路連結
選擇離線同步任務的資料來源和資料去向,以及用於執行同步任務的資源群組,並測試連通性。
若資料來源與資源群組網路不通,請參考介面提示或文檔進行網路連通配置。詳情請參見:網路連通方案。
配置資料來源與去向
配置資料來源:Hive側參數
配置離線同步節點的資料來源相關參數。本實踐將Hive資料整庫離線同步至MaxCompute,資料來源為Hive表,配置要點如下所示。
配置項 | 配置要點 |
資料來源 | 選擇上述建立的Hive資料來源。 |
表 | 選擇待同步的Hive表。建議對於要進行資料同步的表,Hive資料來源開發和生產環境保證具有相同的表結構。 說明 此處會展示Hive資料來源開發環境地的表列表和表結構,如果您的Hive資料來源開發和生產環境的表定義不同,則可能出現任務在開發環境配置正常但提交生產運行後報錯表不存在、列不存在的問題。 |
讀取Hive方法 |
說明 HDFS方式效率更高,JDBC方式會產生MapReduce程式,同步效率較低。注意HDFS方式同步不支援配置條件過濾、不支援閱讀檢視(VIEW)表,您可以根據自身需求選擇相應的同步方式。 |
parquet schema | 如果Hive表格儲存體格式為parquet格式,需要配置對應的parquet schema。 |
其他參數保持預設即可。
配置資料去向:MaxCompute側參數
配置離線同步節點的資料去向相關參數。本實踐將Hive資料整庫離線同步至MaxCompute,資料去向為MaxCompute表,配置要點如下所示。
配置項 | 配置要點 |
資料來源 | 選擇上述建立的MaxCompute資料來源。 |
表 | 選擇資料寫入的MaxCompute表。 |
分區資訊 | 如果要寫入的表為分區表,則您可以填入分區列的取值,取值可以是固定值如 說明 分區資訊會根據MaxCompute表的實際結構定義確定是否有該配置項以及配置項的表單數量,如果選擇寫入的是非分區表,則不會出現該配置項;如果選擇寫入的是分區表,則會根據分區表實際分區列個數和分區列名出現對應的表單項。 |
其他參數保持預設即可。
配置欄位對應
選擇資料來源和資料去向後,需要指定讀取端和寫入端列的映射關係。您可以選擇同名映射、同行映射、取消映射或自動排版。
配置通道控制
設定任務同步並發數,可容忍的髒資料條數等。
配置調度屬性
單擊下一步進入配置調度頁面,設定同步任務運行所需的調度相關屬性。調度參數使用說明請參見Data Integration使用調度參數的相關說明。
重跑屬性。
可根據業務需求設定不同的重跑策略,設定失敗可重跑策略可以有效降低因為網路抖動等偶發問題導致的任務失敗。
配置調度依賴。
可根據業務需求設定不同的調度依賴。您可以通過設定依賴上一周期的本節點,保證本節點多個調度周期的任務執行個體是依次執行完成的,避免多任務執行個體同時調度運行。
Data Integration離線任務通過調度資源群組下發至對應的Data Integration任務執行資源組上運行,會產生調度相關費用,關於任務下發機制說明,請參見任務下發機制。
試運行與提交執行任務
試運行
單擊頂部的運行或帶參運行,可以試運行並查看同步結果是否符合預期。其中,帶參運行可以針對任務配置中使用的調度系統參數進行替換。
提交和發布任務
試運行沒有問題後,您可以依次單擊儲存、提交按鈕將同步任務提交到生產環境,如果是標準模式工作空間,您還需要單擊發布按鈕才能將同步任務發布至生產環境,後續離線同步任務將會周期性(分鐘或小時或天)將Hive的資料寫入MaxCompute的表中。提交發布的操作請參見發布任務。
發布成功後,您可以在營運中心查看周期調度運行結果、進行補資料等操作。詳情請參見周期任務基本營運操作。