當您使用選用元件功能建立 Dataproc 叢集時,可以安裝 Hudi 等其他元件。本頁說明如何在 Dataproc 叢集上選用安裝 Hudi 元件。
安裝在 Dataproc 叢集時,Apache Hudi 元件會在叢集中安裝 Hudi 程式庫,並設定 Spark 和 Hive,以便與 Hudi 搭配使用。
相容的 Dataproc 映像檔版本
您可以在使用下列 Dataproc 映像檔版本建立的 Dataproc 叢集上安裝 Hudi 元件:
Hudi 相關屬性
建立 Dataproc with Hudi 叢集時,系統會設定下列 Spark 和 Hive 屬性,以便與 Hudi 搭配使用。
設定檔 | 屬性 | 預設值 |
---|---|---|
/etc/spark/conf/spark-defaults.conf |
spark.serializer |
org.apache.spark.serializer.KryoSerializer |
spark.sql.catalog.spark_catalog |
org.apache.spark.sql.hudi.catalog.HoodieCatalog |
|
spark.sql.extensions |
org.apache.spark.sql.hudi.HoodieSparkSessionExtension |
|
spark.driver.extraClassPath |
/usr/lib/hudi/lib/hudi-sparkspark-version-bundle_scala-version-hudi-version.jar |
|
spark.executor.extraClassPath |
/usr/lib/hudi/lib/hudi-sparkspark-version-bundle_scala-version-hudi-version.jar |
|
/etc/hive/conf/hive-site.xml |
hive.aux.jars.path |
file:///usr/lib/hudi/lib/hudi-hadoop-mr-bundle-version.jar |
安裝元件
請在建立 Dataproc 叢集時安裝 Hudi 元件。
Dataproc 映像檔版本頁面會列出每個 Dataproc 映像檔版本中包含的 Hudi 元件版本。
控制台
- 啟用元件。
- 在 Google Cloud 控制台中,開啟 Dataproc 的「建立叢集」頁面。系統會選取「設定叢集」面板。
- 在「Components」部分按照下列步驟操作:
- 在「Optional components」(選用元件) 下方,選取「Hudi」元件。
gcloud 指令
如要建立包含 Hudi 元件的 Dataproc 叢集,請使用 --optional-components
標記的指令。
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --optional-components=HUDI \ --image-version=DATAPROC_VERSION \ --properties=PROPERTIES
更改下列內容:
- CLUSTER_NAME:必填。新叢集名稱。
- REGION:必填。叢集區域。
- DATAPROC_IMAGE:選用。您可以使用這個選用標記,指定非預設的 Dataproc 映像檔版本 (請參閱預設 Dataproc 映像檔版本)。
- PROPERTIES:選用。您可以使用這個選用標記設定 Hudi 元件屬性,這些屬性會以
hudi:
檔案前置字元指定。範例:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE
)。- Hudi 元件版本屬性:您可以視需要指定
dataproc:hudi.version
屬性。注意:Dataproc 會設定 Hudi 元件版本,確保與 Dataproc 叢集映像檔版本相容。如果設定這項屬性,指定版本與叢集映像檔不相容時,叢集建立作業可能會失敗。 - Spark 和 Hive 屬性:Dataproc 會在建立叢集時,設定 Hudi 相關的 Spark 和 Hive 屬性。建立叢集或提交工作時,您不需要設定這些屬性。
- Hudi 元件版本屬性:您可以視需要指定
REST API
您可以透過 Dataproc API,使用 SoftwareConfig.Component
安裝 Hudi 元件,做為 clusters.create
要求的一部分。
提交讀取及寫入 Hudi 資料表的工作
使用 Hudi 元件建立叢集後,即可提交讀取及寫入 Hudi 資料表的 Spark 和 Hive 工作。
gcloud CLI
範例:
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ --region=region \ JOB_FILE \ -- JOB_ARGS
PySpark 工作範例
下列 PySpark 檔案會建立、讀取及寫入 Hudi 資料表。
下列 gcloud CLI 指令會將範例 PySpark 檔案提交至 Dataproc。
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ gs://BUCKET_NAME/pyspark_hudi_example.py \ -- TABLE_NAME gs://BUCKET_NAME/TABLE_NAME
使用 Hudi CLI
Hudi CLI 位於 Dataproc 叢集主要節點的 /usr/lib/hudi/cli/hudi-cli.sh
。您可以使用 Hudi CLI 查看 Hudi 表格結構定義、提交和統計資料,並手動執行管理作業,例如排定壓縮作業 (請參閱「使用 hudi-cli」)。
如要啟動 Hudi CLI 並連線至 Hudi 表格,請按照下列步驟操作:
- 透過 SSH 連線至主要節點。
- 執行
/usr/lib/hudi/cli/hudi-cli.sh
。 命令提示字元會變更為hudi->
。 - 執行
connect --path gs://my-bucket/my-hudi-table
。 - 執行
desc
等指令,說明資料表結構定義,或執行commits show
,顯示提交記錄。 - 如要停止 CLI 工作階段,請執行
exit
。
後續步驟
- 請參閱 Hudi 快速入門指南。