Apache Spark とは

Apache Spark は、SQL、ストリーミング、機械学習、グラフ処理用の組み込みモジュールを備えた大規模なデータ処理のための統合分析エンジンです。Spark は、Apache Hadoop、Kubernetes、クラウド上で単独で実行でき、さまざまなデータソースに対して実行できます。Java、Scala、Python、R でリッチな API を提供しているため、幅広いデベロッパーやデータ サイエンティストが利用できます。その Python API である PySpark は、データ操作のための Pandas などの一般的なライブラリともうまく統合されます。Google Cloud では、サーバーレス オプション、Lightning Engine(プレビュー版)のような画期的なパフォーマンスの向上、統合データおよび AI プラットフォームへの深いインテグレーションにより、Apache Spark を次のレベルに引き上げています。

よくある質問として、Apache Spark と Apache Hadoop それぞれの使いどころに関するものがあります。これらは両方とも、今日の市場で特に有名な分散システムであり、ともに Apache トップレベル プロジェクトです。両システムには類似性があり、併用されるケースも少なくありません。Hadoop は、主に MapReduce パラダイムを使用したディスクを大量に使用するオペレーションに使用されます。Spark はより柔軟な、(多くの場合)より費用のかかるインメモリ処理アーキテクチャです。両者の機能を理解すれば、両者の使いどころを決定できるようになります。

Google Cloud を使用して、よりシンプルで統合された、費用対効果の高い方法で Apache Spark ワークロードを実行する方法を学びましょう。Apache Spark 用 Google Cloud Serverless を活用してゼロオペレーションの開発を行うことも、Dataproc を使用してマネージド Spark クラスタを作成することもできます。

Apache Spark の概要

Spark のエコシステムには、次の 5 つの主要コンポーネントがあります。

  1. Spark Core: 汎用の分散データ処理エンジンです。Spark Core は、分散タスクのディスパッチ、スケジューリング、基本的な I/O を管理する基本的な実行エンジンです。Spark Core は、Resilient Distributed Datasets(RDD)という概念を導入しました。RDD は、耐障害性で並列処理できるオブジェクトの不変的な分散コレクションです。その上に、SQL、ストリーム処理、ML、グラフ計算用のライブラリがあります。これらはすべて、1 つのアプリケーション内で併用できます。
  2. Spark SQL は、構造化データを扱うための Spark モジュールです。DataFrames を導入し、構造化データ操作のための RDD よりも最適化された、開発者フレンドリーな API を提供します。これにより、SQL や使い慣れた DataFrame API を使用して、Spark プログラム内の構造化データをクエリできます。Spark SQL は HiveQL 構文をサポートし、既存の Apache Hive ウェアハウスへのアクセスを可能にします。Google Cloud は、Lightning Engine などのイノベーションにより、特に SQL と DataFrame の操作で Spark ジョブのパフォーマンスをさらに加速させ、Google Cloud で Spark を実行する際のクエリとデータ処理タスクの大幅なスピードアップを実現します。
  3. Spark Streaming: スケーラブルでフォールト トレラントなストリーミング ソリューションを簡単に構築できるようになります。各言語に統合されたストリーム処理 API により、DStreams または DataFrame に基づいて構築された新しい Structured Streaming API を使用して、バッチジョブと同じ方法でストリーミング ジョブを作成できます。Spark Streaming は、Java、Scala、Python に対応しており、ステートフルで正確に 1 回限りの処理を行う(exactly-once)セマンティクスをすぐに利用できます。
  4. MLlib: 実用的な ML をスケーラブルで簡単にするツールを備えた、Spark のスケーラブルな機械学習ライブラリです。MLlib には、分類、回帰、レコメンデーション、クラスタリングなど、数多くの一般的な学習アルゴリズムが含まれています。また、ワークフローに加え、特長変換、ML パイプライン構築、モデル評価、分散線形代数、統計などのユーティリティも含まれています。Google Cloud の Vertex AI と組み合わせると、Spark MLlib ワークフローを MLOps パイプラインにシームレスに統合でき、Gemini でコーディングとトラブルシューティングの開発を強化できます。
  5. GraphX: グラフおよびグラフ並列計算用の Spark API です。柔軟性があり、グラフとコレクションの両方をシームレスに扱うことができます。抽出、変換、読み込み、探索的分析、反復グラフ計算を 1 つのシステム内に統合させることができます。

これらのコンポーネント全体で、Google Cloud は最適化された環境を提供します。たとえば、Lightning Engine は Spark と DataFrame のパフォーマンスを向上させ、Apache Spark 用 Google Cloud Serverless はデプロイと管理を簡素化します。また、Gemini BigQuery StudioVertex AI Workbench などのノートブック環境でデベロッパーの生産性を高めます。

Apache Spark の仕組み

Apache Spark の強みは、次のいくつかの主要なアーキテクチャ原則に由来しています。

  • インメモリ処理: Spark はデータをメモリに読み込むため、ディスクベースのシステムと比較して、反復アルゴリズムとインタラクティブなクエリが大幅に高速化されます。
  • 分散実行: マシンのクラスタ上で動作します。ドライバ プログラムは、異なるデータ パーティションでタスクを並行して実行するエグゼキュータ(ワーカー プロセス)を調整します。
  • RDD と DataFrame: 耐障害性分散データセット(RDD)は、基本的なフォールト トレラント データ抽象化です。RDD 上に構築された DataFrame は、構造化データ向けのより豊富なスキーマ対応 API を提供し、Catalyst オプティマイザーによる最適化を可能にします。
  • 遅延評価と DAG: Spark は、有向非巡回グラフ(DAG)のオペレーションを構築します。変換は「遅延」型(すぐに計算されない)であるため、Spark は「アクション」が実行をトリガーする前にワークフロー全体を最適化できます。

Apache Spark のメリット

スピード

Spark のインメモリ処理と DAG スケジューラにより、Hadoop MapReduce よりもワークロードを高速化できます。特に反復タスクに効果的です。Google Cloud は、最適化されたインフラストラクチャと Lightning Engine でこの速度を高めています。

使いやすさ

Spark の高レベル演算子により、並列アプリの構築が簡素化されます。Scala、Python、R、SQL でインタラクティブに使用することで、迅速な開発が可能になります。Google Cloud は、Gemini を活用したサーバーレス オプションと統合ノートブックを提供し、使いやすさを向上させています。



スケーラビリティ

Spark は水平方向の拡張性を提供し、クラスタノード間で作業を分散することで膨大なデータを処理します。Google Cloud は、サーバーレスの自動スケーリングと柔軟な Dataproc クラスタによりスケーリングを簡素化します。

一般性

Spark を基盤として、SQL と DataFrame、機械学習用の MLlib、GraphX、Spark Streaming といったライブラリのスタックが構築されています。これらのライブラリは、同じアプリケーションでシームレスに組み合わせることが可能です。

オープンソース フレームワークのイノベーション

Spark は、オープンソース コミュニティの力を活用して迅速なイノベーションと問題解決を実現し、開発と製品化までの時間を短縮します。Google Cloud は、このオープンな精神を受け入れ、標準の Apache Spark を提供しながらその機能を強化しています。

SQL のみのエンジンではなく Spark を選ぶ理由

Apache Spark は、Hadoop クラスタモードでもスタンドアロン モードでもデプロイできる高速な汎用クラスタ計算エンジンです。Spark を使用すると、プログラマーは Java、Scala、Python、R、SQL でアプリケーションを迅速に作成できるようになります。これにより、デベロッパー、データ サイエンティスト、統計の経験を持つ先進的なビジネスマンが、アプリケーションにアクセスできるようになります。Spark SQL を使用すれば、任意のデータソースに接続し、テーブルとして SQL クライアントに提示できます。また、インタラクティブな機械学習アルゴリズムを Spark に簡単に実装できます。

Apache Impala、Apache Hive、Apache Drill などの SQL 専用エンジンでは、ユーザーは複数のデータベースに保存されているデータをクエリするために SQL または SQL に似た言語のみを使用できます。これは、フレームワークが Spark と比較して小さいことを意味します。 しかし、Google Cloud では、厳密な選択をする必要はありません。BigQuery は強力な SQL 機能を備えており、Apache Spark 用の Google Cloud Serverless と Spark および Hadoop のマネージド サービス用の Dataproc により、Spark の多様性を活用できます。多くの場合、BigLake Metastore とオープン形式を通じて、同じデータで活用できます。

企業が Spark をどのように活用しているか

多くの企業が Spark を使用して、構造化データと非構造化データの両方を含む大量のリアルタイム データやアーカイブ データの処理や分析という、困難で計算負荷の高いタスクを簡素化しています。Spark を使用すれば、機械学習やグラフ アルゴリズムなどの関連する複雑な機能をシームレスに統合できます。 一般的なアプリケーションは次のとおりです。

  • 大規模な ETL/ELT
  • リアルタイム データ処理
  • 機械学習
  • インタラクティブなデータ探索
  • グラフ分析

データ エンジニア

データ エンジニアは、拡張された言語セットでプログラミングするオプションを使用し、Spark を使用してコーディングとデータ処理ジョブの構築を行います。Google Cloud では、データ エンジニアは、ゼロオペレーションの ETL/ELT パイプラインのために Google Cloud Serverless for Apache Spark を活用したり、マネージド クラスタの制御のために Dataproc を使用したりできます。これらはすべて、ガバナンスのために BigQuery や Dataplex Universal Catalog などのサービスと統合されています。

データ サイエンティスト

データ サイエンティストは、GPU で Spark を使用して分析や ML のより豊かな体験を実現できます。使い慣れた言語で大量のデータをより高速に処理できるため、イノベーションの加速に貢献します。 Google Cloud は、Spark の堅牢な GPU サポートと Vertex AI とのシームレスな統合を提供し、データ サイエンティストがモデルをより迅速に構築してデプロイできるようにします。BigQuery Studio、Vertex AI Workbench などのさまざまなノートブック環境を活用したり、Jupyter や VS Code などの好みの IDE を接続したりできます。この柔軟な開発エクスペリエンスと Gemini を組み合わせることで、当初のプロトタイピングから本番環境へのデプロイまで、ワークフローを加速できます。

Google Cloud で Apache Spark を実行する

Google Cloud で Spark エクスペリエンスを最適化する

  • Apache Spark 用 Google Cloud Serverless: クラスタを管理することなく、Spark ジョブを実行できる、真のゼロオペレーション エクスペリエンス。ほぼ瞬時の起動、自動スケーリング、Lightning EngineGemini のパフォーマンス向上のメリットを享受できます。ETL、データ サイエンス、インタラクティブな分析に最適で、特に BigQuery と統合すると効果的です。
  • Dataproc: クラスタ環境をより細かく制御する必要がある場合や、Spark と併せて特定の Hadoop エコシステム コンポーネントが必要な場合に、Dataproc はフルマネージド サービスを提供します。Dataproc はクラスタの作成と管理を簡素化し、Spark のパフォーマンスを向上させる Lightning Engine の機能強化も利用できます。
  • 統合されたオープンなエコシステム: Google Cloud で Spark を実行すると、統合分析のための BigQuery、MLOps のための Vertex AI、オープンなメタデータ共有のための BigLake Metastore、包括的なデータ ガバナンスのための Dataplex Universal Catalog などのサービスとシームレスに統合できます。これらはすべて、オープンなレイクハウス アーキテクチャをサポートしています。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud