從 Apache Hive 擷取中繼資料以進行遷移

本文說明如何在執行 Apache Hive 資料或權限遷移作業前,使用 dwh-migration-dumper 工具擷取必要的中繼資料。

本文說明如何從下列資料來源擷取中繼資料:

  • 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 檔案解壓縮,解壓縮工具二進位檔位於 /bin 子目錄中,該子目錄位於解壓縮 ZIP 檔案後建立的資料夾。

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

擷取遷移中繼資料

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

Apache Hive

執行 Apache Hive 從資料倉儲擷取中繼資料和查詢記錄一節中的步驟,擷取 Apache Hive 中繼資料。接著,您可以將中繼資料上傳至含有遷移檔案的 Cloud Storage bucket。

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 bucket。

這個指令會將 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 bucket。

您也可以加入下列選用旗標:

  • --kerberos-auth-for-hadoop:如果 Apache Ranger 是由 Kerberos 保護,而非基本驗證,則會取代 --user 和 --password。您必須先執行 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 bucket。
  • APPLICATION-TYPES:(選用) Hadoop YARN 中所有現有應用程式類型的清單。例如:SPARK, MAPREDUCE。
  • PAGE-SIZE:(選用) 指定從第三方服務 (例如 Hadoop YARN API) 擷取的資料量。預設值為 1000,代表每項要求 1, 000 個實體。

這個指令會從 Cloudera 擷取中繼資料,並儲存至 MIGRATION-BUCKET 目錄中名為 dwh-migration-cloudera.zip 的檔案。

Apache Hive 查詢記錄

按照 Apache Hive 使用 hadoop-migration-assessment 記錄掛鉤擷取查詢記錄一節中的步驟,擷取 Apache Hive 查詢記錄。接著,您可以將記錄上傳至含有遷移檔案的 Cloud Storage bucket。

後續步驟

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