Dataproc クラスタを作成する際には、オプション コンポーネント機能を使用して、Hudi などの追加コンポーネントをインストールできます。このページでは、必要に応じて、Dataproc クラスタに Hudi コンポーネントをインストールする方法について説明します。
Dataproc クラスタにインストールすると、Apache Hudi コンポーネントは Hudi ライブラリをインストールし、Hudi と連携するようにクラスタに Spark と Hive を構成します。
互換性のある Dataproc イメージ バージョン
次の Dataproc イメージ バージョンで作成された Dataproc クラスタに Hudi コンポーネントをインストールできます。
Hudi 関連のプロパティ
Hudi クラスタで Dataproc を作成すると、次の 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 コンポーネントのバージョンが一覧表示されています。
Console
- コンポーネントを有効にします。
- Google Cloud コンソールで、Dataproc の [クラスタの作成] ページを開きます。[クラスターを設定] パネルが選択されています。
- [コンポーネント] セクションで次の設定を行います。
- [オプション コンポーネント] で [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
プロパティを指定できます。注: Hudi コンポーネントのバージョンは、Dataproc クラスタ イメージ バージョンとの互換性を確保するために Dataproc によって設定されます。このプロパティを設定すると、指定したバージョンがクラスタ イメージと互換性がない場合、クラスタの作成に失敗することがあります。 - Spark と Hive のプロパティ: Dataproc は、クラスタの作成時に Hudi 関連の Spark プロパティと Hive プロパティを設定します。クラスタの作成時やジョブの送信時に設定する必要はありません。
- Hudi コンポーネント バージョンのプロパティ: 必要に応じて
REST API
Hudi コンポーネントは、clusters.create
リクエストの一部として SoftwareConfig.Component
を使用して Dataproc 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 ファイルを 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 テーブルのスキーマ、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
を実行します。