BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Sparkがソートパフォーマンスの新記録を達成

Sparkがソートパフォーマンスの新記録を達成

ブックマーク

原文(投稿日:2014/11/26)へのリンク

Apache Sparkの開発者が創立したDatabricksが,先日のDaytona GraySortコンテストで,Sparkプロセッシングエンジンを使って新記録を達成した。Daytona GraySortコンテストは,100テラバイトのデータをソートする速度を計測する,サードパーティによるベンチマークである。Databricksは公式記録として,206台のクラスタ上で4,27テラバイト/分というスループットを公表している。これはHadoop MapReduceを使用するYahoo!が提示したこれまでの記録と比較して,10分の1のマシンで,3倍の性能向上を達成したことになる。

Daytona GraySortコンテストへの提出資料を公開したブログ記事の中で同社は,最近になってSparkに導入され,これほど大きなスループットを達成可能にした技術的改善のいくつかを取り上げている。

Spark 1.1ではソートベース・シャッフルと呼ばれる,新しいシャッフル実装が導入された。これまでのシャッフル実装では,シャッフルのパーティション毎に インメモリバッファが必要だったため,これが大きなメモリオーバーヘッドを生み出していた。しかし新しいソートベースシャッフルでは,一度に必要なメモリバッファはひとつだけでよい。これによってメモリ使用量が大幅に削減され,同一条件のハードウェア上で,より多くのタスクが並行動作可能になったのだ。

新しいシャッフルアルゴリズムに加えて,ネットワークモジュールがNettyのネイティブEpollソケットトランスポートに改訂された。メモリプール管理を独自に行うことで,JVMのメモリアロケータをバイパスし,ガベージコレクションの影響を低減する。新しいネットワークモジュールは外部のシャッフルサービス構築でも利用され,メインのSpark実行体がガベージコレクションで停止している間でも,シャッフルファイルの提供が可能になった。

最後に,Spark 1.1では,デフォルトのソートアルゴリズムとしてTimSortが導入された。TimSortはマージソートとインサートソートから派生したもので,現実のデータセットの大部分,中でも部分的にソートされたデータセットに対して,クイックソートよりもパフォーマンスに優れている。

これらすべての改善によってSparkクラスタは,Mapフェーズでは3GB/ノードのI/Oアクティビティ,Reduceフェーズでは10Gbpsのイーサネットリンクを飽和させる1.1GB/秒/ノードのネットワークアクティビティを維持することが可能になっている。

SparkはUCバークレーのAMPLabでの研究から生まれた,高度な実行エンジンである。Hadoop MapReduceに比較してプログラムを,データがディスク上にある場合は10倍,メモリ上に存在する場合は100倍の速度で実行することができる。SparkはJava,Scala,またはPythonで記述されたプログラムをサポートする。データ処理フローは,馴染みの深い関数型プログラミングで構築可能だ。

Sparkは,Hadoopの次世代の実行プラットフォームとして,大きな注目を集めるだけでなく,MapReduceを置き換えとして見る声も一部にはある。2月にはApacheのトップレベルプロジェクトに昇格し,それ以降,ClouderaHortonworksMapRのHadoopディストリビューションなどに含まれている。さらに最近では,Hortonworksが,Stinger.nextイニシアティブの一環として,Spark上でのHive実行をサポートする予定だと発表している。

Databricksは2013年に,Sparkとその関連プロジェクトをサポートするコマーシャルエンティティとして設立された。関連プロジェクトとしてはストリームプロセッシングをサポートするSpark Streaming,HiveデータをクエリするSpark SQL,機械学習用のMLibなどがある。

この記事に星をつける

おすすめ度
スタイル

BT