從 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
執行下列指令,使用 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 使用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 查詢記錄。然後,您可以將記錄上傳至含有遷移檔案的 Cloud Storage bucket。
後續步驟
從 Hadoop 擷取中繼資料後,您可以使用這些中繼資料檔案執行下列操作: