0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud Dataproc

Last updated at Posted at 2025-07-20

1.Dataprocとは

Google Cloud Dataprocは、GCP上で提供されるマネージドなHadoop/Sparkクラスターです。エンタープライズ用途から軽量ETLバッチまで、柔軟かつ高速にジョブを実行することが可能です。

特に以下のような特徴があります:

  • Ephemeral(短命)クラスタに対応しており、ジョブ実行後に自動削除される
  • Apache Sparkによる高速な分散処理を中心に、機械学習・ETLバッチ処理など幅広く対応
  • Hadoop由来のHDFSやYARNなども利用可能(ただしGCSやSparkオンリー構成も主流)

1.1.定期ETLの構成例

Dataprocを使った日次ETLジョブの構成例を以下に示します:

  1. Cloud Scheduler(毎日朝6時にトリガー)
  2. Cloud Composer(Airflow) でDAGを起動
  3. Dataproc クラスタ起動 → PySparkジョブ実行(GCS→BigQuery)
  4. クラスタ自動削除(ephemeral構成)

このような構成により、コストを抑えつつ定期バッチ処理を安定して運用できます。

2. Hadoop由来のDataproc クラスタ

Dataprocクラスタは元々はHadoopクラスタをGCP上でマネージドに動かすためのサービスとしてスタートしました。
つまり、DataprocはHadoop互換のマネージドクラスタが原点です。

現在はSpark中心で使う構成が主流となっており、Hadoopそのもの(MapReduceやHDFS)を使わないケースも多いですが、ここではHadoop由来のDataproc クラスタについて解説します。

2.1.クラスタ構成要素

2.1.1.YARN ResourceManager

  • クラスタ全体のリソース管理とジョブスケジューリングを担当
  • Web UIでノードの状況やジョブ履歴を確認可能(SOCKSプロキシ経由)

2.1.2.HDFS NameNode

  • HDFSファイルシステムのメタデータ(ファイル構造やブロック配置など)を管理
  • 通常はmasterノード上で稼働

※DataprocではGCSをファイルシステム代替として使う構成も多いため、HDFSを使わない構成が主流です。

2.1.3.Graceful Decommission

Google Cloud Dataproc や Hadoop 環境における Graceful Decommission(優雅な撤去) とは、ノードを停止する際に、進行中の処理やデータをできるだけ安全に移動・保存した上でクラスターから削除する仕組みです。

よくある問題と対策:ノードが早く消えすぎる

Dataprocでは自動スケーリングポリシーにより、アイドル状態のワーカーを削除(decommission)することが可能です。

ただしこのgraceful decommission timeoutが短すぎると、ジョブ中にも関わらずノードが削除されてしまい、パフォーマンスが不安定になることがあります。

対策:タイムアウトを延長する

gracefulDecommissionTimeout: 2700s  # = 45分

または、

gcloud dataproc clusters update your-cluster \
  --graceful-decommission-timeout=45m

メリット

  • ジョブ実行中はノードが保持される
  • ジョブ完了後のみスケールインが実施され、コスト削減が可能
  • ノードの途中削除が起きず、パフォーマンスが安定

2.2.Dataproc クラスタの構成ファイルの更新

Dataproc クラスタの構成ファイルを更新するためには、--properties フラグを使用し、以下のような形式でプロパティを指定します:

--properties file_prefix:property=value

2.3.ワーカーVMのローカルディスク構成

Dataprocクラスタ作成時、ワーカーノードのローカルディスクとして以下のオプションが選択可能です:

  • 標準永続ディスク(HDD)コストを抑えたい場合に有効、速度は低め
  • SSD永続ディスク:読み書きが高速、バランス型
  • ローカルSSD:非常に高速。ただしサイズ制限があり、再起動でデータ消失(揮発性)

用途に応じたディスク選定が重要です。

3.Cloud Dataproc の Web UI アクセス方法

Dataprocのクラスタに含まれる以下のようなWeb UIにアクセスしたい場合:

  • YARN ResourceManager
  • Spark UI
  • HDFS NameNode UI

これらは外部公開されておらず、プライベートネットワーク内にあります。そこで、SOCKSプロキシ経由でのSSHトンネリングが推奨されます。

gcloud compute ssh <your-cluster-master> -- -D 1080

上記のようにSOCKSプロキシを使い、ローカルのブラウザ経由でWeb UIへアクセス可能です。

※Spark UIもDataprocクラスタ上で動作していますが、これはYARNではなくSpark Applicationの内部構成を可視化するものです。

4.DataprocとBigQueryの連携活用

Dataprocで処理した結果をBigQueryに書き込むのはもちろん、BigQueryから読み込んで差分比較や同一性検証なども可能です。たとえば、ETLをBigQueryに移行する際、DataprocのPySparkジョブでBigQueryの出力を比較して結果の同一性を確認することができます。

5.コスト最適化:プリエンプティブルVMの活用

Dataprocでは、プリエンプティブルVM(Preemptible VM)を活用することで、最大80%のコスト削減が可能です。

  • 例:週1回30分程度のジョブ → 中断リスクが低く、コスト効果抜群
  • ノード種別に応じて柔軟に選択可能

6.課金の仕組み

Cloud Dataproc は、使用した分単位で課金される minute-by-minute billing を採用しており、リソースを使用した分だけ正確に課金される仕組みです。これは、ジョブが短時間で完了する一時的なクラスタ(ephemeral clusters)などのユースケースで特に有効です。

7.Spark MLlibとの連携

Dataproc上でApache SparkのMLlib(Machine Learning Library)を使えば、分散機械学習処理が可能になります。

  • データ前処理、学習、評価までを並列実行
  • GCSやBigQueryとの連携で大規模データも容易に処理可能

※Spark MLlibはSpark専用ライブラリであり、Hadoop MapReduceとは関係ありません。

8.Dataproc Serverless (for Spark)

ユーザーがクラスターを明示的に作らず、ジョブを投げると裏で自動的に必要なリソースが割り当てられる、別のサービス。

9.リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?