Apache Spark は、ビッグデータのワークロードを処理するために一般的に使用されているオープンソースの分散処理システムです。Apache Spark では、高速パフォーマンス向けにメモリキャッシングと最適化がなされた実行方法が使用され、一般的なバッチ処理、ストリーミング分析、機械学習、グラフデータベース、アドホッククエリなどがサポートされています。

Hadoop YARN の Apache Spark が Amazon EMR でネイティブにサポートされており、AWS マネジメントコンソール、AWS CLI または Amazon EMR API から簡単かつ迅速にマネージド型の Apache Spark クラスターを作成できます。さらに、Amazon EMR File System (EMRFS) を使用した Amazon S3 との高速接続、Amazon EC2 スポットマーケットと AWS Glue データカタログとの統合、クラスターのインスタンスを追加または削除する Auto Scaling といった Amazon EMR の他の機能も活用できます。また、Apache Zeppelin を使用して、インタラクティブなコラボレーション型ノートブックを作成し、Apache Spark でデータ調査を行うこともできます。他にも、Apache MXNet などの深層学習フレームワークを Spark アプリケーションで使用できます。

Spark-logo-192x100px
S3_Sketch_Available

Directed Acyclic Graph (DAG) 実行エンジンを使用することにより、Apache Spark ではデータ変換用の効率的なクエリプランが可能になっています。また、Apache Spark では、入力、出力、および中間データのインメモリデータが Resilient Distributed Dataset (RDD) として保存されるため、I/O コストをかけずに高速処理が可能となり、反復ワークロードやインタラクティブなワークロードのパフォーマンスが向上します。

S3_Sketch_HighPerformance

Apache Spark では Java、Scala および Python がネイティブサポートされ、アプリケーションの構築にさまざまな言語を使用できます。また、Spark SQL モジュールを使用して、SQL または HiveQL クエリを Apache Spark に送信できます。アプリケーションの実行に加えて、クラスターの Apache Spark シェルから Python または Scala を直接使用して、Apache Spark API をインタラクティブに使用することもできます。データの調査と可視化のために、Zeppelin を使用してインタラクティブなコラボレーション型ノートブックを作成することも可能です。さらに、アプリケーション履歴を使用することで、Amazon EMR コンソール、ネイティブ Spark UI、クラスターの履歴サーバーで、Spark ワークロードを調整したりデバッグしたりできます。

S3_Sketch_Simple

Apache Spark には、機械学習 (MLlib)、ストリーム処理 (Spark Streaming) およびグラフ処理 (GraphX) 向けアプリケーション構築に役立つライブラリが含まれています。これらのライブラリは Apache Spark エコシステムと緊密に統合されており、さまざまなユースケースに合わせてすぐに活用することができます。加えて、Apache MXNet などの深層学習フレームワークを Spark アプリケーションで使用できます。

Benefit_Workflow_Green

ワークロードに応じて、Amazon EMR Step API による Apache Spark ジョブの送信、Apache Spark と EMRFS を併用した Amazon S3 データへの直接アクセス、Amazon EC2 スポットキャパシティーを利用したコスト節減、Auto Scaling を使用したキャパシティーの動的追加や削除、長期使用のクラスターや一時的なクラスターの作成が行えます。Amazon EMR のセキュリティ設定を使用すると、Spark 暗号化と Kerberos による認証を簡単に設定できます。さらに、AWS Glue データカタログを使用して、Spark SQL テーブルメタデータを保存できます。Amazon EMR では Hadoop YARN に Apache Spark をインストールして管理します。Hadoop エコシステムの他のアプリケーションもクラスターに追加できます。Amazon EMR の特徴の詳細についてはここをクリックしてください。


Yelp

Yelp の広告ターゲティングチームは、ある広告に対するユーザー操作の可能性を判定する予測モデルを作成しています。Amazon EMR での Apache Spark を使用して大量のデータを処理し、機械学習モデルを鍛えることで、Yelp では収入と広告のクリックスルー率を向上させました。

ワシントンポスト

Washington Post では、Amazon EMR で Apache Spark を使用して、ウェブサイトの推奨エンジンを強化するモデルを構築し、読者のエンゲージメントと満足度を高めることができました。Amazon EMR と Amazon S3 との高性能接続を活用することで、モデルはほぼリアルタイムで更新されます。

Intent Media

Intent Media は、旅行販売サイトの広告向けプラットフォームを運営しています。データチームは Amazon EMR で Apache Spark と MLlib を使用して、テラバイト単位の e コマースデータを毎日取り込み、その情報を活用して判定サービスを強化し、顧客収入を最適化しています。詳細については、ここをクリックしてください。

Krux

Krux では、顧客インサイトのデータ管理プラットフォームの一部として、多数の機械学習ワークロードと一般処理ワークロードを Apache Spark を使用して実行させています。Krux では Amazon EC2 スポットキャパシティーを利用した一時的な Amazon EMR クラスターを活用することでコストを節減し、EMRFS によって Amazon S3 を Apache Spark のデータレイヤーとして使用しています。

続きを読む »

GumGum

画像内および画面内広告のプラットフォームである GumGum では、Amazon EMR の Spark を在庫予測、クリックストリームログの処理、Amazon S3 の非構造化データのアドホック分析に利用しています。Spark によりパフォーマンスが強化されることで、GumGum ではワークフローにかかる時間と費用を節約できています。
 

続きを読む »

Hearst Corporation

多種多様なメディアや情報を扱う大企業である Hearst Corporation では、200 を超えるウェブプロパティのコンテンツを閲覧する顧客が存在します。Amazon EMR で Apache Spark Streaming を使用することで、Hearst の編集スタッフは、どの記事がよい成績を上げ、どのテーマがトレンドになっているのか、リアルタイムの動きを把握できています。
 

続きを読む »

CrowdStrike

CrowdStrike は、侵害対策のエンドポイント保護を提供しています。Amazon EMR と Spark を使用することで、数百テラバイトものイベントデータを処理し、ホストでより高レベルな動作記述にまとめています。CrowdStrike では、そのデータからイベントデータについてまとめ、悪意のあるアクティビティの存在を判定することができています。
 

続きを読む »


Amazon KinesisApache Kafka またはその他のデータストリームからのリアルタイムデータを、Amazon EMR で Spark Streaming を使用して取り込み、処理します。ストリーミング分析を耐障害性のある方法で実行し、結果を Amazon S3 やクラスターの HDFS に書き込みます。

 

Amazon EMR での Apache Spark には、多くのスケーラブルな機械学習アルゴリズムに対応する MLlib が含まれています。独自のライブラリを使用することも可能です。ジョブの間はデータセットをインメモリに保存することで、機械学習のワークロードにおいて共通して繰り返されるクエリに対して Spark は優れたパフォーマンスを発揮します。

 

 

Spark SQL を使用して、SQL や HiveQL を使用した低レイテンシーのインタラクティブなクエリを実行できます。Amazon EMR での Apache Spark では EMRFS を使用できるため、Amazon S3 内のデータセットへのアドホックアクセスが可能です。また、Zeppelin ノートブックや BI ツールを ODBC および JDBC 接続を介して使用することもできます。