從 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 工具,請按照下列步驟操作:

  1. 在要執行 dwh-migration-dumper 工具的機器上,從 dwh-migration-dumper 工具 GitHub 存放區下載 zip 檔案。
  2. 如要驗證 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 檔案是從相同版本下載,並放在相同目錄中。

  3. 將 ZIP 檔案解壓縮,解壓縮 ZIP 檔案後建立的資料夾中,/bin 子目錄內會包含解壓縮工具二進位檔。

  4. 更新 PATH 環境變數,加入擷取工具的安裝路徑。

擷取中繼資料以進行遷移

選取下列其中一個選項,瞭解如何擷取資料來源的中繼資料:

Apache Hive

執行下列指令,使用 dwh-migration-dumper 工具從 Apache Hive 擷取中繼資料。

dwh-migration-dumper \
  --connector hiveql \
  --host HIVE-HOST \
  --port HIVE-PORT \
  --output gs://MIGRATION-BUCKET/hive-dumper-output.zip \
  --assessment \

更改下列內容:

  • HIVE-HOST:Apache Hive 執行個體的主機名稱
  • HIVE-PORT:Apache Hive 執行個體的通訊埠號碼。如果您使用預設的 9083 連接埠,可以略過這個引數。
  • MIGRATION-BUCKET:用於儲存遷移檔案的 Cloud Storage 值區。

這項指令會將 Apache Hive 的中繼資料擷取至 MIGRATION-BUCKET 目錄中名為 hive-dumper-output.zip 的檔案。

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 使用 httphttps。預設值為 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 查詢記錄。然後,您可以將記錄上傳至含有遷移檔案的 Cloud Storage bucket。

後續步驟

從 Hadoop 擷取中繼資料後,您可以使用這些中繼資料檔案執行下列操作: