從 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 工具,請按照下列步驟操作:
- 在要執行
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.zipTrue結果確認核對和驗證成功。False結果表示驗證錯誤。請確認核對和與 ZIP 檔案是從相同發布版本下載,並放在同一個目錄中。將 ZIP 檔案解壓縮,解壓縮工具二進位檔位於
/bin子目錄中,該子目錄位於解壓縮 ZIP 檔案後建立的資料夾。更新
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 擷取中繼資料後,您可以使用這些中繼資料檔案執行下列操作: