Skip to main content
NetApp artificial intelligence solutions
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ソリューション技術

Apache Spark は、Hadoop 分散ファイル システム (HDFS) と直接連携する Hadoop アプリケーションを作成するための人気のプログラミング フレームワークです。 Spark は本番環境に対応しており、ストリーミング データの処理をサポートし、MapReduce よりも高速です。 Spark には、効率的な反復処理のために構成可能なメモリ内データ キャッシュがあり、Spark シェルはインタラクティブにデータを学習および探索できます。 Spark を使用すると、Python、Scala、または Java でアプリケーションを作成できます。 Spark アプリケーションは、1 つ以上のタスクを持つ 1 つ以上のジョブで構成されます。

すべての Spark アプリケーションには Spark ドライバーがあります。 YARN クライアント モードでは、ドライバーはクライアント上でローカルに実行されます。 YARN クラスター モードでは、ドライバーはアプリケーション マスター上のクラスターで実行されます。クラスター モードでは、クライアントが切断されてもアプリケーションは実行を継続します。

入出力ダイアログまたは書かれたコンテンツを示す図

クラスター マネージャーは 3 つあります。

  • *スタンドアロン*このマネージャーは Spark の一部であり、クラスターのセットアップを容易にします。

  • *Apache Mesos。*これは、MapReduce やその他のアプリケーションも実行する一般的なクラスター マネージャーです。

  • *Hadoop YARN。*これは Hadoop 3 のリソース マネージャーです。

復元力のある分散データセット (RDD) は、Spark の主要コンポーネントです。 RDD は、クラスター内のメモリに保存されたデータから失われたデータや欠落したデータを再作成し、ファイルから取得された初期データやプログラムによって作成された初期データを保存します。 RDD は、ファイル、メモリ内のデータ、または別の RDD から作成されます。 Spark プログラミングでは、変換とアクションという 2 つの操作を実行します。変換では、既存の RDD に基づいて新しい RDD が作成されます。アクションは RDD から値を返します。

変換とアクションは、Spark データセットとデータフレームにも適用されます。データセットは、RDD (強力な型指定、ラムダ関数の使用) の利点と Spark SQL の最適化された実行エンジンの利点を兼ね備えた分散型データ コレクションです。データセットは JVM オブジェクトから構築し、関数変換 (map、flatMap、filter など) を使用して操作できます。 DataFrame は、名前付きの列に編成されたデータセットです。概念的には、リレーショナル データベースのテーブルまたは R/Python のデータ フレームと同等です。 DataFrames は、構造化データ ファイル、Hive/HBase 内のテーブル、オンプレミスまたはクラウド内の外部データベース、既存の RDD など、さまざまなソースから構築できます。

Spark アプリケーションには、1 つ以上の Spark ジョブが含まれます。ジョブはエグゼキュータ内でタスクを実行し、エグゼキュータは YARN コンテナ内で実行されます。各エグゼキュータは単一のコンテナ内で実行され、アプリケーションの存続期間中ずっと存在します。アプリケーションの起動後にエグゼキュータが固定され、YARN はすでに割り当てられているコンテナのサイズを変更しません。 Executor はメモリ内のデータに対してタスクを同時に実行できます。