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で割と手軽に処理を記述できますし、機械学習との相性も良いので、あとは信頼性がもう少し上がれば是非導入したいところ。