從 Apache Hive 擷取中繼資料以進行遷移
本文說明如何使用 dwh-migration-dumper 工具,在執行 Apache Hive 資料或權限遷移作業前,擷取必要的中繼資料。
本文涵蓋從下列資料來源擷取中繼資料:
- Apache Hive
- Apache Hadoop 分散式檔案系統 (HDFS)
- Apache Ranger
- Cloudera Manager
- Apache Hive 查詢記錄
事前準備
使用 dwh-migration-dumper 工具前,請先完成下列步驟:
安裝 Java
您打算執行 dwh-migration-dumper 工具的伺服器必須安裝 Java 8 以上版本。如果沒有,請從 Java 下載頁面下載並安裝 Java。
所需權限
您指定用來將 dwh-migration-dumper 工具連結至來源系統的使用者帳戶,必須具備從該系統讀取中繼資料的權限。確認這個帳戶具備適當的角色成員資格,可查詢平台可用的中繼資料資源。舉例來說,INFORMATION_SCHEMA 是多個平台通用的中繼資料資源。
安裝 dwh-migration-dumper 工具
如要安裝 dwh-migration-dumper 工具,請按照下列步驟操作:
- 在要執行
dwh-migration-dumper工具的機器上,從dwh-migration-dumper工具 GitHub 存放區下載 zip 檔案。 如要驗證
dwh-migration-dumper工具的 ZIP 檔案,請下載SHA256SUMS.txt檔案,然後執行下列指令:Bash
sha256sum --check SHA256SUMS.txt
如果驗證失敗,請參閱「疑難排解」。
Windows PowerShell
(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]
將
RELEASE_ZIP_FILENAME替換為dwh-migration-dumper指令列擷取工具版本的已下載 zip 檔案名稱,例如dwh-migration-tools-v1.0.52.zip。True結果會確認總和檢查碼驗證是否成功。False結果表示驗證錯誤。請確認檢查碼和 zip 檔案是從相同版本下載,並放在相同目錄中。將 ZIP 檔案解壓縮,解壓縮 ZIP 檔案後建立的資料夾中,
/bin子目錄內會包含解壓縮工具二進位檔。更新
PATH環境變數,加入擷取工具的安裝路徑。
擷取中繼資料以進行遷移
選取下列其中一個選項,瞭解如何擷取資料來源的中繼資料:
Apache Hive
請按照「從資料倉儲擷取中繼資料和查詢記錄」一節中的步驟,擷取 Apache Hive 中繼資料。然後,您可以將中繼資料上傳至含有遷移檔案的 Cloud Storage 值區。
HDFS
執行下列指令,使用 dwh-migration-dumper 工具從 HDFS 擷取中繼資料。
dwh-migration-dumper \
--connector hdfs \
--host HDFS-HOST \
--port HDFS-PORT \
--output gs://MIGRATION-BUCKET/hdfs-dumper-output.zip \
--assessment \
更改下列內容:
HDFS-HOST:HDFS NameNode 主機名稱HDFS-PORT:HDFS NameNode 通訊埠號碼。如果使用預設的8020連接埠,可以略過這個引數。MIGRATION-BUCKET:用於儲存遷移檔案的 Cloud Storage 值區。
這個指令會將 HDFS 中的中繼資料擷取至 MIGRATION-BUCKET 目錄中名為 hdfs-dumper-output.zip 的檔案。
從 HDFS 擷取中繼資料時,有幾項已知限制:
- 這個連接器中的部分工作為選用性質,可能會失敗,並在輸出內容中記錄完整的堆疊追蹤。只要必要工作成功完成並產生
hdfs-dumper-output.zip,即可繼續進行 HDFS 遷移作業。 - 如果設定的執行緒集區大小過大,擷取程序可能會失敗或執行速度比預期慢。如果遇到這些問題,建議使用
--thread-pool-size命令列引數縮減執行緒集區大小。
Apache Ranger
執行下列指令,使用 dwh-migration-dumper 工具從 Apache Ranger 擷取中繼資料。
dwh-migration-dumper \
--connector ranger \
--host RANGER-HOST \
--port 6080 \
--user RANGER-USER \
--password RANGER-PASSWORD \
--ranger-scheme RANGER-SCHEME \
--output gs://MIGRATION-BUCKET/ranger-dumper-output.zip \
--assessment \
更改下列內容:
RANGER-HOST:Apache Ranger 執行個體的主機名稱RANGER-USER:Apache Ranger 使用者的使用者名稱RANGER-PASSWORD:Apache Ranger 使用者的密碼RANGER-SCHEME:指定 Apache Ranger 使用http或https。預設值為http。MIGRATION-BUCKET:用於儲存遷移檔案的 Cloud Storage 值區。
您也可以加入下列選用旗標:
--kerberos-auth-for-hadoop:取代--user和--password,前提是 Apache Ranger 受 Kerberos 保護,而非基本驗證。如要使用這個旗標,必須先執行kinit指令,再執行dwh-migration-dumper工具。--ranger-disable-tls-validation:如果 API 使用的 HTTPS 憑證是自行簽署,請加入這個旗標。例如使用 Cloudera 時。
這項指令會將 Apache Ranger 的中繼資料擷取至 MIGRATION-BUCKET 目錄中名為 ranger-dumper-output.zip 的檔案。
Cloudera
執行下列指令,使用 dwh-migration-dumper 工具從 Cloudera 擷取中繼資料。
dwh-migration-dumper \
--connector cloudera-manager \
--url CLOUDERA-URL \
--user CLOUDERA-USER \
--password CLOUDERA-PASSWORD \
--output gs://MIGRATION-BUCKET/cloudera-dumper-output.zip \
--yarn-application-types APPLICATION-TYPES \
--pagination-page-size PAGE-SIZE \
--assessment \
更改下列內容:
CLOUDERA-URL:Cloudera Manager 的網址CLOUDERA-USER:Cloudera 使用者的使用者名稱CLOUDERA-PASSWORD:Cloudera 使用者的密碼MIGRATION-BUCKET:用於儲存遷移檔案的 Cloud Storage 值區。APPLICATION-TYPES:(選用) Hadoop YARN 中所有現有應用程式類型的清單。例如:SPARK, MAPREDUCE。PAGE-SIZE:(選用) 指定要從第三方服務 (例如 Hadoop YARN API) 擷取多少資料。預設值為1000,表示每個要求 1000 個實體。
這個指令會將 Cloudera 的中繼資料擷取至 MIGRATION-BUCKET 目錄中名為 dwh-migration-cloudera.zip 的檔案。
Apache Hive 查詢記錄
請按照「Apache Hive」一節中的步驟,使用 hadoop-migration-assessment 記錄掛鉤擷取查詢記錄,然後,您可以將記錄上傳至包含遷移檔案的 Cloud Storage bucket。
後續步驟
從 Hadoop 擷取中繼資料後,您可以使用這些中繼資料檔案執行下列操作: