2015年03月05日

Apache Sparkで100TBのソートが23分で出来たお話

100TBのソートで新記録が出たというニュースが出ていました。

World record set for 100 TB sort by open source and public cloud team

記事は今年書かれたものですが、記録自体は2014年に出ています。

the previous world record set by Hadoop MapReduce used 2100 machines in a private data center and took 72 minutes.

(旧記録はプライベートデータセンターで2100台のHadoopを繋いだMapReduceで、72分かかってました)

ということで旧記録はHadoopを使って72分かかっていたわけですが

The team used Apache Spark on 207 EC2 virtual machines and sorted 100 TB of data in 23 minutes.

(本チームは207個のEC2仮装マシン上でApache Sparkを使って、100TBのソートを23分で完了させた)

Sparkを使ってかなりの好タイムが出せたようです。利用したマシンの台数もHadoopより少ない数で済んだようです。

MapReduceは中間結果を毎回ストレージに吐き出しますが、Sparkはより有効にメモリを使うので速度的には速くなりますね。

ちなみに10倍の1PBでも実験していて、234分で結果を取得できたそうです。

we pushed Apache Spark (Spark) further to also sort 1 PB of data (10 trillion records) on 190 machines in under 4 hours. This PB time beats previously reported results based on Hadoop MapReduce (16 hours on 3800 machines).

(1PBのデータ(1兆レコード)を190台のマシンで4時間以内でソートできた。この記録は過去にレポートされてたHadoop MapReduceの3800台で16時間という記録を大きく更新した)

100TBで23分だったのが、1PB(=1000TB)で234分。ほぼ線形とういことでしょうか。いやはや、実に速い。

他の処理を行わせても速度はM/Rより速いケースが大半ですし、Scalaで割と手軽に処理を記述できますし、機械学習との相性も良いので、あとは信頼性がもう少し上がれば是非導入したいところ。

posted by newsit at 07:00| big_data