処理の流れ1データ取得・登録2Map処理3Reduce処理データフォーマットデータ取得プログラムデータ取得方法HDFSへのデータ登録データの確認MapReduce処理の向き不向きさて、前回構築したHadoop環境ですが、それを使ってのMapReduce処理の実装をしてみましょう。その前に、どのような処理が向いているのか確認してみたいと思います。MapReduceは計算フレームワークですが、HDFSと組み合わせることにより、特に大規模データの分散処理に有用なものとなります(小さい入力データについて処理を分散させることも可能です⁠)⁠。入力に使用されるデータの種類はテキストXMLバイナリデータベースからという風にいくつかの入力を受け付けることが可能です。今回はテキストファイルを入力としたMapReduceを行いたいと思います。大規模なテキストデータ入力となるテキストデータを今回はインターネット上のコンテンツから取得したいと思います。2ちゃんねるという巨大掲示板サイトは、みなさんご存じかと思います。2ちゃんねるではさまざまなジャンルの掲示板が存在していますが、実況板はテレビ番組を見ながら突っ込みを入れるというスタイルの掲示板となっており、番組内での過激なシーンや発言があると掲示板上では一気に書き込みが増えます。インターネットユーザの嗜好に偏った部分もありますが、共通のコンテンツに対しリアルタイムで発言するというスタイルが非常におもしろいと感じます。今回の題材では、2ちゃんねるの実況板への書き込みデータを使用し、いくつかの解析を行いたいと思います(データ量はそれほど多くないですが⁠)⁠。解析ある番組に実況データを解析し、以下の事を行いたいと思います。ある時間単位でどのような単語が多く書き込まれたか?複数の人間が1つのコンテンツを視聴しているわけですが、それなりにシーンに直結した発言が多く見られるのではないだろうか。ここでは閾値を10分程度に見ておきます。処理の流れ1データ取得・登録2ちゃんねるからダウンロードしたログデータをHDFSに保存します。これはMapReduce処理のインプットとなるデータです。ここでは1行1レスポンスというフォーマットで保存します。2Map処理1のデータを入力としてMap処理がスタートします。Map処理では、以下のことを行います。データの正規化(アスキーアートの削除)キーとバリューへの分割(unixtimeを10分で丸めた値をキー、品詞解析した単語をバリューにする)この処理は各サーバに分割されたファイルについて実行されます。3Reduce処理2で処理された結果を受けて実行されます。キーごとに単語数を集計し、上位2単語程度を当該時間帯でよく発言されたものとする。基本的には上記のような流れで進めてみたいと思います。データフォーマット2ちゃんねるのデータは以下のような形式になっています。行セパレータは\nとする(改行区切り⁠)⁠。2ch_4.csvこのように引数にチャンネル番号を指定して起動します。標準入力に出力されますので、保存したいファイル名でデータを保存します(ここでは2ch_4.csvとしています⁠)⁠。HDFSへのデータ登録hユーザで登録を行います。2ch_4.csvこれでHDFSにデータの登録ができました。/user/h/2ch_4.csvこのような出力が出れば問題ありません。2ch_4.cvsとするとファイルの中身が出力されると思います。取り急ぎ今回はここまで。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。