濃縮還元オレンジニュース

伊藤直也氏によるKansai.pmでの発表資料「Hadoop StreamingでMapReduce」

この記事を読むのに必要な時間:およそ 0.5 分

関西のPerlユーザグループKansai.pmでの勉強会にて,はてなの伊藤直也氏が発表したセッション資料です。資料には,Googleの根幹技術であるMapReduceの解説やPerlでのMapReduce実装,さらにJavaオープンソースプロダクトのHadoopを使ってMapReduceを行う方法について書かれています。MapReduceは,関数型言語に由来するmap関数とreduce関数を定義して大規模なデータを多数のサーバで処理するシステムです。

伊藤氏は,MapReduceの計算モデルをPerlモジュール化した自作のMapReduce::Liteを使って,Apacheのログ解析を題材にコード例を示しています。しかし,ただ計算モデルだけを実装してもGoogleのように大規模なデータ処理は行えません。分散ファイルシステムを利用し複数マシンにデータを分割してそれぞれ処理することで,大きなデータを扱うことができます。

そこでMapReduceと分散ファイルシステムを備えたHadoopの登場です。HadoopはJavaで実装されているので通常MapperとReducerはJavaで書く必要がありますが,Hadoop Streamingを使えば標準入出力を扱えるものであれば何でもMapper,Reducerにすることができます。資料ではPerlスクリプトを使った例を挙げています。また,Hadoop StreamingをPerlで扱いやすくするための自作フレームワークも紹介しています。ちなみに,発表資料には書かれていませんがHadoop Pipesを使えばC++で高速に実装することもできます。

このように,Hadoopを使えば誰でもGoogleのようにMapReduce処理を行うことができます。実際FacebookやMySpace,Last.fmといったサービスは,Hadoopで数十台~数百台のマシンを使って、数十Tバイト~数Pバイトものデータを処理しています。

URLhttp://d.hatena.ne.jp/naoya/20080531/1212245982

著者プロフィール

角田直行(かくだなおゆき)

普段はお仕事でPHPやJavaを使ってWeb開発をしています。一部でセレブエンジニアとか言われてますが,全然セレブじゃありません。

コメント

コメントの記入