濃縮還元オレンジニュース
伊藤直也氏によるKansai.pmでの発表資料「Hadoop StreamingでMapReduce」
関西の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バイトものデータを処理しています。
濃縮還元オレンジニュース
- 調査と実践のバランス
- 会社の甘いささやき翻訳辞典「いい経験になる」「これが最後」「流用できる」
- Microsoftの開発現場ではVSSではなくCVSが,プロジェクト管理はMS ProjectではなくExcelが使われている
- ミラクル・リナックスの吉岡弘隆氏,取締役を退任してプログラマへ
- Perl「言語」初心者がモダンなPerlを高速に学ぶ方法
- 伊藤直也氏によるKansai.pmでの発表資料「Hadoop StreamingでMapReduce」
- PHP 5.3の無名関数を試してみた
- ソーシャルニュースサイト「reddit」がソースコードを公開
- Rails 2.1.0リリース

