グーグル、フル機能のMapReduceをGoogle App Engineで提供へ
グーグルは同社のクラウドサービスであるGoogle App Engineで、フル機能のMapReduce機能を提供することが同社のイベントGoogle I/O 2011で明らかにしました。
これまでGoogle App EngineではMapReduceを構成する「Map」「Shuffle」「Ruduce」の3つのうち、Mapperの機能の提供が行われてきました。
Google I/O 2011で行われたセッション「App Engine MapReduce」では、MapReduceを構成するすべての機能の提供が行われることが発表されています。
セッションのポイントを紹介しましょう。
App Engine MapReduce
App EngineエンジニアリングチームのMike Aizatsky氏。
MapReduceは数年前にグーグルが開発した処理。社内ではほとんどあらゆるチームがこの処理を利用している。Androidのチームでも使っていると思う。
MapReduceは、「Map」「Shuffle」「Reduce」と呼ばれる主要な3つのステップから構成される。
MapReduce処理を一般に利用してもらうには、グーグル社内で行っているMapReduceをApp Engineで公開すればいいように思えるが、そこにはいくつかの課題がある。
例えば、App Engineでは非常に多数のアプリケーションが動作しており、多くのユーザーがMapReduceを同時に実行するとスケーラビリティに問題がでてくる。
もう1つは分離の問題。利用者ごとのMapReduceを完全に分離しつつ高い性能を実現しなければならない。
グーグル社内のオリジナルのMapReduceは、可能な限り高速に実行するようにできているが、一般ユーザーではMapReduceを走らせて15分でその日の自分の利用容量の限界に達し、あとはApp Engine上のほかのアプリも全部処理が止まる、というわけにはいかないだろう。利用率の上限を設定する必要がある。
だからできるだけゆっくりMapReduceを実行するという要求もあるはずだし、悪意のあるユーザーも防がなければならない。
昨年、2010年のGoogle I/OでMapper Libraryを発表し、多くの開発者に利用してもらっている。
これをさらに改善し、コントロールAPIを追加、ネームスペースをサポートするなどした。
さらにShuffler機能もオープンソースで公開する。Python版は今日公開、Java版もまもなく公開する。
これは100MB程度の小さなデータを対象に、インメモリで動作し、タスクドリブンな機能を提供するものだ。
これによりMapper LibraryはもはやMapperでなく、MapReduceライブラリとなる!
これが実際に走らせたときの動作。新しいUIでマルチステージを表示している。
まとめると、コードを公開し、App Engineで今日から中小規模のMapReduce処理はだれでも実行できる。
もしも大規模な処理を実行したい場合は連絡してほしい。
あわせて読みたい
プリウスがつぶやきでユーザーと会話する。トヨタとセールスフォースが提携
≪前の記事
IBM、インテル、ヒューレット・パッカードらがオープンソースの仮想化「KVM」を推進。Open Virtualization Allianceを結成