Managed Service for Apache Spark クラスタを作成する際には、オプション コンポーネント機能を使用して、Hudi などの追加コンポーネントをインストールできます。このページでは、必要に応じて、Managed Service for Apache Spark クラスタに Hudi コンポーネントをインストールする方法について説明します。
Managed Service for Apache Spark クラスタにインストールすると、Apache Hudi コンポーネントは Hudi ライブラリをインストールし、Hudi と連携するようにクラスタに Spark と Hive を構成します。
互換性のある Managed Service for Apache Spark イメージ バージョン
次の Managed Service for Apache Spark イメージ バージョンで作成された Managed Service for Apache Spark クラスタに Hudi コンポーネントをインストールできます。
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 コンソールで、Managed Service for Apache Spark の [クラスタの作成] ページを開きます。[クラスタの設定] パネルが選択されています。
- [コンポーネント] セクションで次の設定を行います。
- [オプション コンポーネント] で [Hudi] コンポーネントを選択します。
gcloud コマンド
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プロパティを指定できます。注: Hudi コンポーネントのバージョンは、Managed Service for Apache Spark クラスタ イメージ バージョンとの互換性を確保するために Managed Service for Apache Spark によって設定されます。このプロパティを設定すると、指定したバージョンがクラスタ イメージと互換性がない場合、クラスタの作成に失敗することがあります。 - Spark と Hive のプロパティ: Managed Service for Apache Spark は、クラスタの作成時に Hudi 関連の Spark プロパティと Hive プロパティを設定します。クラスタの作成時やジョブの送信時に設定する必要はありません。
- Hudi コンポーネント バージョンのプロパティ: 必要に応じて
REST API
Hudi コンポーネントは、clusters.create リクエストの一部として SoftwareConfig.Component を使用して Managed Service for Apache Spark API によりインストールできます。
ジョブを送信して 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 テーブルのスキーマ、commit、統計情報を表示し、スケジュールの圧縮などの管理オペレーションを手動で実行できます(hudi-cli の使用をご覧ください)。
Hudi CLI を起動して Hudi テーブルに接続するには:
- マスターノードに SSH で接続します。
/usr/lib/hudi/cli/hudi-cli.shを実行します。コマンド プロンプトがhudi->に変わります。connect --path gs://my-bucket/my-hudi-tableを実行します。- テーブル スキーマを記述する
descや、commit 履歴を表示するcommits showなどのコマンドを実行します。 - CLI セッションを停止するには、
exitを実行します。
次のステップ
- Hudi クイック スタートガイドをご覧ください。