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