本文為您介紹通過Hive UDTF遷移Hive數據的方法。
準備事項
?絡環境要求。
Hive集群各節點能夠訪問MaxCompute。
MMA所在服務器能夠訪問Hive MetaStore Server、Hive Server。
創建?于遷移數據的Hive UDTF。
在MMA的幫助??下載對應版本的UDTF的jar包,如
mma-udtf.jar
。執行以下命令上傳
mma-udtf.jar
至HDFS。hdfs dfs -put -f mma-udtf.jar hdfs:///tmp/
使?Beeline或Hive命令登錄Hive、創建Hive UDTF。
DROP FUNCTION IF EXISTS default.odps_data_dump_multi; CREATE FUNCTION default.odps_data_dump_multi as 'com.aliyun.odps.mma.io.McD ataTransmissionUDTF' USING JAR 'hdfs:///tmp/mma-udtf.jar';
如果Hive配置了kerberos訪問認證,需要將以下文件拷貝到MMA所在的服務器。
hive.keytab?件。
gss-jass.conf?件。
說明gss-jass.conf中含有keytab?件的路徑,要確保其與MMA所在服務器上的hive.keytab?件路徑?致。
krb5.conf?件。
說明krb5.conf中含有KDC地址,MMA所在服務器要能夠訪問該地址。
操作步驟
添加數據源。
單擊頁面左側的數據源,進入數據源列表頁面。
單擊添加數據源,進入添加數據源頁面。
數據源類型選擇HIVE,并單擊下一步。
根據如下參數說明配置數據源。
參數名稱
描述
數據源名
數據源名稱,可自定義,不能包含字符、數字、漢字之外的特殊字符。
hive metastore url
請根據實際情況填寫。如:thrift://192.168.0.212:9083。
hive metastore client socket timeout
默認600。
hive jdbc url
Hive JDBC的連接信息。格式為
jdbc:hive2://localhost:10000/default
。hive jdbc user name
Hive JDBC的用戶名,必填。
hive jdbc password
Hive JDBC的密碼,可選。
hive metastore是否開啟了kerberos認證
若開啟,則需要填寫下?kerberos的相關配置。
kerberos principal
與krb5.conf?的kdc_realm值保持?致。
kerberos keytab文件位置
keytab?件在MMA所在服務器上的路徑。
kerberos gss-jaas.conf文件位置
gss-jass.conf?件在MMA所在服務器上的路徑。
kerberos krb5.conf文件位置
krb5.conf?件在MMA所在服務器上的路徑。
單個任務處理的最多分區數量
默認50。即一次MMA任務遷移的分區數量,通過批量的分區遷移,可以減少提交Hive SQL的次數,節約Hive SQL提交時間。
單個任務處理的最大數量(單位G)
單位GB,默認5。即?次MMA任務遷移的所有分區的??之和的上限。
hive job配置, 用于mr, spark, tez等引擎
默認為MR任務的部分配置。
說明如果Hive使?的引擎不是MR,則需要通過指定“hive.execution.engine”值來指定Hive使?的引擎,并且?于不同引擎的任務參數需要自己調整。該配置用于解決YARN Container內存不?、指定Spark運?隊列等問題。
數據庫白名單
需要遷移的Hive數據庫,多個值之間以英?逗號分隔。
數據庫黑名單
不需要遷移的Hive數據庫,多個值之間以英?逗號分隔。
meta api訪問并發量
訪問Hive MetaStore的并發量,?于提?獲取Hive元數據的速度。
表黑名單, 格式為db.table
不需要遷移的Hive數據庫表。單個表的格式為
dbname.tablename
, 多個表之間以英?逗號分隔。表白名單, 格式為db.table
需要遷移的Hive數據庫表。單個表的格式為
dbname.tablename
,多個表之間以英?逗號分隔。單擊頁面底部的提交。
說明如果所填的配置無誤,且MMA所在服務器能夠訪問Metastore URL和JDBC URL,則MMA會通過Metastore URL拉取Hive的元數據,即庫、表、分區信息。否則將會報錯,此時需要檢查各配置項是否正確,重新填寫并提交配置。
待拉取元數據的進度條顯示為100%后,頁面會跳轉到數據源列表頁面。
創建數據遷移任務。
MMA可以創建單庫、多表、多分區三個級別的遷移任務。
說明單庫,遷移單個Database。
多表,遷移一個或多個Table。
多分區,遷移1個或多個Partition。
遷移多個表。
單擊頁面左側的數據源,在數據源列表頁面單擊想要遷移的數據源名。
在所選的數據源詳情頁面,單擊要遷移的庫名。
勾選要遷移的表,單擊新建遷移任務。
根據實際情況在新建遷移任務彈框中配置各參數,參數說明如下。
參數名稱
描述
名稱
自定義。建議填寫有意義的任務名稱,便于整理遷移記錄。
任務類型
請根據實際情況選擇。
mc同region。
mc跨region。
mc校驗。即對比源項目和目的項目所有相同表的數據。
mc項目
目的MaxCompute項目。
table列表
要遷移的Table列表,多個Table之間以英?逗號分隔。
開啟校驗
默認打開。
增量更新
默認打開。開啟后分區表已經遷移過的分區不會被重新遷移。
只遷schema
只遷移表結構、分區值。根據實際情況選擇是否打開。
分區過濾
詳情請參見分區過濾表達式說明。
表名映射
?個Table遷移到?的項目后的名稱。
單擊確定。
說明如果遷移任務的配置無誤,則新的遷移任務可以在
中查看,相應的子任務可以在 中查看。
遷移多個分區。
單擊頁面左側的數據源,在數據源列表頁面單擊想要遷移的數據源名。
在所選的數據源詳情頁面,單擊要遷移的庫名。
切換partition列表頁簽,勾選要遷移的分區。
單擊新建遷移任務,根據實際情況在新建遷移任務彈框中配置各參數,參數說明如下。
參數名稱
描述
名稱
自定義。建議填寫有意義的任務名稱,便于整理遷移記錄。
任務類型
請根據實際情況選擇。
mc同region。
mc跨region。
mc校驗。即對比源項目和目的項目所有相同表的數據。
mc項目
目的MaxCompute項目。
開啟校驗
默認打開。
只遷schema
只遷移表結構、分區值。根據實際情況選擇是否打開。
partition列表
保持默認值即可。
表名映射
?個Table遷移到?的項目后的名稱。
單擊確定。
說明如果遷移任務的配置無誤,則新的遷移任務可以在
中查看,相應的子任務可以在 中查看。
遷移單個庫。
單擊頁面左側的數據源,在數據源列表頁面單擊想要遷移的數據源名。
單擊要遷移的庫所在行的遷移。
根據實際情況在新建遷移任務彈框中配置各參數,參數說明如下。
參數名稱
描述
名稱
自定義。建議填寫有意義的任務名稱,便于整理遷移記錄。
任務類型
請根據實際情況選擇。
mc同region。
mc跨region。
mc校驗。即對比源項目和目的項目所有相同表的數據。
mc項目
目的MaxCompute項目。
table白名單
要遷移的Table列表,多個Table之間以英文逗號分隔。
開啟校驗
默認打開。
增量更新
默認打開。開啟后分區表已經遷移過的分區不會被重新遷移。
只遷schema
只遷移表結構、分區值。
分區過濾
詳情請參見分區過濾表達式說明。
表名映射
?個Table遷移到?的項目后的名稱。
單擊確定。
說明如果遷移任務的配置無誤,則新的遷移任務可以在
中查看,相應的子任務可以在 中查看。