このページでは、Cloud Data Fusion のパイプライン処理の基本的な用語とコンセプトについて説明します。
パイプラインのパフォーマンスは、次の要素によって異なります。
- データのサイズと特性
- パイプラインの構造
- クラスタのサイジング
- Cloud Data Fusion パイプラインが使用するプラグイン
Cloud Data Fusion のパイプライン処理の用語
Cloud Data Fusion のパイプライン処理では、次の用語が適用されます。
- マシンタイプ
- 使用される仮想マシン(VM)のタイプ(CPU、メモリ)。
- クラスタ
- 大規模なデータ処理タスクを処理するために連携する VM のグループ。
- マスターノードとワーカーノード
- 処理を行うことができる物理マシンまたは仮想マシン。通常、マスターノードは作業を調整します。ワーカーノードは、データを処理するエグゼキュータを実行します。マシンの特性(プロセスで使用可能なメモリ量と vCore の数)があります。
- vCore、コア、CPU
- コンピューティングを行うリソース。通常、ノードは一定数のコアを提供します。また、Executor は 1 つまたは数個の CPU をリクエストします。メモリとバランスをとってください。バランスがとれていないと、クラスタが十分に使用されない可能性があります。
- Driver
- クラスタ全体の中央コーディネーターとして機能する単一の VM。タスクの管理、ワーカーノード間の作業のスケジュール設定、ジョブの進行状況のモニタリングを行います。
- エグゼキュータ
- ドライバの指示に従って、実際のデータ処理タスクを実行する複数の VM。データは分割され、これらのエグゼキュータに分散されて並列処理されます。すべてのエグゼキュータを利用するには、十分な分割が必要です。
- 分割またはパーティション
- データセットはスプリット(別名パーティション)に分割され、データを並列で処理します。スプリットが十分でない場合は、クラスタ全体を利用できません。
パフォーマンスのチューニングの概要
パイプラインはマシンのクラスタで実行されます。Dataproc クラスタで Cloud Data Fusion パイプラインを実行する場合(推奨されるプロビジョナーです)、YARN(Yet Another Resource Negotiator)がバックグラウンドで使用されます。Dataproc は、クラスタ内のリソース管理に YARN を使用します。Cloud Data Fusion パイプラインを Dataproc クラスタに送信すると、基盤となる Apache Spark ジョブは YARN を使用してリソースの割り当てとタスクのスケジューリングを行います。
クラスタはマスターノードとワーカーノードで構成されます。通常、マスターノードは作業の調整を担当し、ワーカーノードは実際の作業を実行します。通常、クラスタには少数のマスターノード(1 つまたは 3 つ)と多数のワーカーがあります。YARN は作業調整システムとして使用されます。YARN は、マスターノードでリソース マネージャー サービスを実行し、各ワーカーノードでノードマネージャー サービスを実行します。Resource Manager は、すべての Node Manager と調整して、クラスタ上でコンテナを作成して実行する場所を決定します。
各ワーカーノードで、Node Manager は、YARN コンテナの実行用に使用可能なマシンメモリと CPU の一部を予約します。たとえば、Dataproc クラスタでワーカーノードが n1-standard-4 VM(4 CPU、15 GB メモリ)の場合、各ノードマネージャーは YARN コンテナの実行用に 4 個の CPU と 12 GB のメモリを予約します。残りの 3 GB のメモリは、ノードで実行されている他の Hadoop サービスに使用されます。
パイプラインが YARN で実行されると、Dataproc でパイプライン ワークフロー ドライバ、Spark ドライバ、多数の Spark エグゼキュータが起動されます。
ワークフロー ドライバは、パイプラインを構成する 1 つ以上の Spark プログラムを起動します。通常、ワークフロー ドライバはほとんど処理を行いません。各 Spark プログラムは、1 つの Spark ドライバと複数の Spark エグゼキュータを実行します。ドライバはエグゼキュータ間で作業を調整しますが、通常は実際の作業は行いません。実際の処理のほとんどは Spark エグゼキュータによって実行されます。
次のステップ
- Cloud Data Fusion の並列処理について学習する。