Spark は、メモリ コンピューティングに基づくオープン ソースのクラスター コンピューティング システムであり、データ分析の高速化を目的としています。 Spark は非常に小さく精巧で、カリフォルニア大学バークレー校の AMP 研究所の Matei が率いる小規模チームによって開発されました。使用されている言語は Scala で、プロジェクトのコア部分のコードには 63 個の Scala ファイルしかなく、非常に短く簡潔です。
Spark は、Hadoop に似たオープン ソースのクラスター コンピューティング環境ですが、この 2 つの間にはいくつかの違いがあります。これらの有益な違いにより、Spark は特定のワークロードにおいて優れています。言い換えれば、Spark は、次のようなインメモリ分散データセットを可能にします。インタラクティブなクエリを提供できることに加えて、反復的なワークロードを最適化します。
Spark は Scala 言語で実装されており、アプリケーション フレームワークとして Scala を使用します。 Hadoop とは異なり、Spark と Scala は緊密に統合されており、Scala を使用すると、分散データ セットをローカル コレクション オブジェクトと同じくらい簡単に操作できます。
Spark は分散データ セットでの反復ジョブをサポートするために作成されましたが、実際には Hadoop を補完するものであり、Hadoop ファイル システム上で並列実行できます。この動作は、Mesos と呼ばれるサードパーティのクラスター フレームワークを通じてサポートされています。カリフォルニア大学バークレー校の AMP ラボ (アルゴリズム、マシン、およびピープル ラボ) によって開発された Spark を使用して、大規模な低遅延データ分析アプリケーションを構築できます。
Spark クラスター コンピューティング アーキテクチャ
Spark には Hadoop との類似点がありますが、有益な違いがある新しいクラスター コンピューティング フレームワークを提供します。まず、Spark は、クラスター コンピューティングにおける特定の種類のワークロード、つまり並列操作間で作業データ セット (機械学習アルゴリズムなど) を再利用するワークロード向けに設計されています。このようなタイプのワークロードを最適化するために、Spark はインメモリ クラスター コンピューティングの概念を導入しています。この概念では、データ セットがメモリ内にキャッシュされてアクセス レイテンシーが短縮されます。
Spark では、Resilient Distributed Dataset (RDD) と呼ばれる抽象化も導入しています。 RDD は、一連のノードに分散された読み取り専用オブジェクトのコレクションです。これらのコレクションは回復力があり、データ セットの一部が失われた場合でも再構築できます。部分的なデータセットを再構築するプロセスは、「リネージ」(つまり、データ導出プロセスに基づいてデータセットの部分的な再構築を可能にする情報)を維持するフォールト トレラント メカニズムに依存します。 RDD は、ファイルから作成できる Scala オブジェクト、並列化されたスライス (ノード全体に分散)、RDD の別の変換された形式、そして最終的にはキャッシュされたリクエストなどの既存の RDD の永続性への完全な変更として表されます。記憶の中で。
Spark のアプリケーションはドライバーと呼ばれ、これらのドライバーは単一ノード上で、または一連のノード上で並行して実行される操作を実装します。 Hadoop と同様に、Spark は単一ノード クラスターまたはマルチノード クラスターをサポートします。マルチノード操作の場合、Spark は Mesos クラスター マネージャーに依存します。 Mesos は、分散アプリケーションのリソース共有と分離のための効率的なプラットフォームを提供します。この設定により、Spark と Hadoop がノードの共有プール内で共存できるようになります。
Apache に関連する技術的な記事については、Apache チュートリアル 列にアクセスして学習してください。
以上がApache Sparkとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。