FacebookがCoronaをオープンソース化した。これはFacebookがHadoop MapReduceのスケジューリングを改善するために自社開発したソフトウェアだ。
Coronaは2つの重要なタスク、クラスター管理とジョブトラッキングから構成される。これはMapReduceスケジューラ/リソースマネージャーを改善するApache YARNのコンセプトと非常によく似ている。FacebookのエンジニアがCoronaについて、その背景を含めて説明している。彼らはYARNを再利用しなかった理由をこう説明する。
CoronaではなくApache YARNを使う可能性についても検討していたことも言っておくべきでしょう。しかしながら、(何ペタバイトものアーカイブデータによる強い要件がある)HDFSの私たちのバージョン上でYARNが使えるか調査した結果 、修正に膨大な時間がかかる、リスクの高い非互換性が多数あることがわかりました。それに、YARNがいつFacebook規模の負荷環境で動くようになるか、私たちにはわかりませんでした。
HadoopのFacebookバージョンにおける大きな違いのひとつがAvatarNodeだ。これはクラスタにおける全ノードのホットスタンバイを作る。そして可用性の高いNameNodeを作って、ダウンタイムなしにソフトウェアアップグレードすることまでできる。データウェアハウスにおける何百ペタバイトものデータ(毎日0.5ペタバイトもの新しいデータがやってくる)を処理するような会社にとって、これは極めて重要だ。
現在のところ、CoronaはMapReduceジョブを実行できるが、FacebookはPeregrineのような他のアプリケーションからのジョブのスケーリングにも使おうとしている。
Apache Hadoopは大規模分散コンピューティングを可能にするプロジェクト群だ。InfoQのHadoopに関するリソースを見てみよう。