使用選用元件功能建立 Managed Service for Apache Spark 叢集時,可以安裝 Hudi 等其他元件。本頁說明如何在 Managed Service for Apache Spark 叢集上選擇性地安裝 Hudi 元件。
Apache Hudi 元件安裝至 Managed Service for Apache Spark 叢集時,會一併安裝 Hudi 程式庫,同時設定叢集中的 Spark 和 Hive,以便與 Hudi 搭配運作。
相容的 Managed Service for Apache Spark 映像檔版本
Hudi 元件可安裝於使用下列 Managed Service for Apache Spark 映像檔版本建立的 Managed Service for Apache Spark 叢集:
Hudi 相關屬性
建立搭載 Hudi 的 Managed Service for Apache Spark 叢集時,系統會設定下列 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 |
安裝元件
請在建立 Managed Service for Apache Spark 叢集時安裝 Hudi 元件。
Managed Service for Apache Spark 映像檔發布版本頁面會列出每個 Managed Service for Apache Spark 映像檔版本內含的 Hudi 元件版本。
Google Cloud 控制台
gcloud CLI
如要建立包含 Hudi 元件的 Managed Service for Apache Spark 叢集,請在指令中使用 --optional-components 旗標。
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --optional-components=HUDI \ --image-version=DATAPROC_VERSION \ --properties=PROPERTIES
更改下列內容:
- CLUSTER_NAME:這是必要項目,用來設定新的叢集名稱。
- REGION:這是必要項目,用來設定叢集區域。
- DATAPROC_IMAGE:選用。可選用此旗標來指定非預設的 Managed Service for Apache Spark 映像檔版本 (請參閱預設 Managed Service for Apache Spark 映像檔版本)。
- PROPERTIES:選用。可選用此旗標設定 Hudi 元件屬性,而這些屬性需以
hudi:檔案前置字元指定,例如:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE)。- Hudi 元件版本屬性:使用者可視需要指定
dataproc:hudi.version屬性。注意:Managed Service for Apache Spark 會設定 Hudi 元件版本,確保與 Managed Service for Apache Spark 叢集映像檔版本相容。如果設定這項屬性,但指定版本與叢集映像檔不相容,則可能導致叢集建立作業失敗。 - Spark 和 Hive 屬性:Managed Service for Apache Spark 會在建立叢集時設定與 Hudi 相關的 Spark 和 Hive 屬性。建立叢集或提交工作時,您不需要設定這些屬性。
- Hudi 元件版本屬性:使用者可視需要指定
REST API
Hudi 元件可以透過 Dataproc API 安裝,方法是在 clusters.create 要求中使用 SoftwareConfig.Component。
提交讀取及寫入 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 檔案提交至 Managed Service for Apache Spark。
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 位於 Managed Service for Apache Spark 叢集主要執行個體節點的 /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 快速入門指南。