Amazon Web Services ブログ
Amazon EMR が、Apache Spark 用 EMR ランタイムを導入
Amazon EMR は、Apache Spark 用の Amazon EMR ランタイムを発表いたします。これは、Amazon EMR クラスターでデフォルトでアクティブになっている Apache Spark 用のパフォーマンス最適化ランタイム環境です。Spark 用の EMR ランタイムは、EMR 5.16 と比べて最大 32 倍高速で、オープンソース Spark と 100% の API 互換性があります。これは、アプリケーションに変更を加えることなく、ワークロードがより速く実行され、コンピューティングコストを節約できることを意味します。
Amazon EMR は EMR 5.24 以降、Spark ランタイムの改善を追加しており、Spark パフォーマンスの最適化で説明しています。EMR 5.28 には、さらにいくつかの新しい改善も含まれています。
こうした改善を評価するために、EMR 5.16 (オープンソース Apache Spark バージョン 2.4 と使用) と EMR 5.28 (Apache Spark バージョン 2.4 互換 Apache Spark 用 EMR ランタイムと使用) を比較しました。Amazon S3 のデータを使用して、6 ノードの c4.8xlarge EMR クラスターで 3 TB 規模の TPC-DS ベンチマーククエリを実行しました。合計クエリ実行時間の改善の幾何平均、およびすべてのクエリにわたる合計クエリ実行時間として、パフォーマンスの改善を測定しました。結果はかなりの改善を示しました。幾何平均は 2.4 倍速くなり、クエリの合計実行時間は 3.2 倍速くなりました。
次のグラフは、104 の TPC-DS クエリの合計実行時間として測定されたパフォーマンスの改善を示しています。EMR 5.28 の方が、より良い (より短い) 実行時間です。
次のグラフは、104 の TPC-DS クエリの幾何平均として測定されたパフォーマンスの改善を示しています。EMR 5.28 の方が、より良い (より短い) 幾何平均です。
クエリごとに改善を分解すると、長時間実行されるクエリで最高のパフォーマンスの向上が見られます。
次のグラフは、長時間実行されるクエリ (EMR 5.16 で 130 秒以上実行) について、EMR 5.16 と比較した EMR 5.28 のパフォーマンスの向上を示しています。この比較では、数値が大きいほど優れています。
次のグラフは、短時間実行されるクエリ (130 秒未満の実行) について、EMR 5.16 と比較した EMR 5.28 のパフォーマンスの向上を示しています。再び、数値が大きいほど優れています。
クエリ 72 で見られるように、130 秒を超えるクエリの実行は最大 32 倍高速です。実行時間が 130 秒未満のクエリは最大 6 倍速くなり、全体的に平均 2 倍改善されます。
大規模な変換からストリーミング、データサイエンス、そして機械学習に至るまでの幅広い分析ユースケースで、Spark を使用できます。Spark を EMR で実行すると、EMR は安定した最新のオープンソースコミュニティといった革新をもたらし、さらに Amazon S3 での高性能ストレージ、スポットインスタンスと Auto Scaling の独自のコスト削減機能も提供します。また、マネージド型 EMR Notebooks、ノートブックスコープのライブラリ、Git 統合、およびオフクラスター Spark History サービスによる簡単なデバッグと監視も提供します。実行時間の改善、および AWS Lake Formation を使用したきめ細かなアクセスコントロールと組み合わせることで、Amazon EMR は Apache Spark を実行しているお客様に最適な選択肢を提供します。
このように Apache Spark でのパフォーマンスを最適化することによって、クエリパフォーマンスも向上します。さらに、Amazon EMR で Apache Spark のパフォーマンスを向上する追加の更新を、どうぞご期待ください。常に最新の状態に保つためにも、ビッグデータブログの RSS フィードに登録してください。Apache Spark の最適化や設定のベストプラクティスについて学んだり、チューニングに関するアドバイスも得られます。
著者について
Joseph Marques はアマゾン ウェブ サービスの EMR プリンシパルエンジニアです。
Peter Gvozdjak はアマゾン ウェブ サービスの EMR シニアエンジニアリングマネージャです。