Hadoop からデカルト言語を呼び出してビッグデータ処理をする例題

1. 概要

日本語のtxt形式のファイルを読み込んで、語を取り出して
使用頻度をカウントし、よく使われている語からソートして
表示する。
青空文庫に登録されている小説などの長文の文書の全体を
処理できる。


2. ファイル一覧

bocchan.txt		夏目漱石「坊っちゃん」（青空文庫より）
get_httpstring.dec	ネットワーク上の文章を取得する
outputs.str		データ処理結果
Readme.txt		このファイル
teniwoha.dec		形態素解析プログラム(map処理)
teniwoha.sh		Hadoopを使わない実行シェル
teniwoha-hadoop.sh	Hadoopを使う実行処理
teniwoha-http.sh	ネットワーク上の文章を分析する処理
teniwoha-http-hadoop.sh ネットワーク上の文章をhadoopで分析する処理
tmpfile.str		データ処理一時ファイル
wsort-reduce.dec	形態素解析結果を集計するプログラム(reduce処理)


2. Hadoopを使わない処理

次のように、引数に文書ファイルを指定して実行する。

$ sh ./teniwoha.sh bocchan.txt

結果はoutputs.strファイルに保存される。

実行には使用環境や対象文書ファイルにもよるが、数十分以上かかる。


3. Hadoopを使う処理

Hadoopは、事前に自分の環境にインストールしておく。

teniwoha-hadoop.shの上にある環境変数の値を、自分の環境に
合わせて変更する。

export JAVA_HOME=/usr
export HADOOP_HOME=${HOME}/work/hadoop.d
export HADOOP_STREAMING=${HADOOP_HOME}/hadoop-1.0.3/contrib/streaming/hadoop-streaming-1.0.3.jar

JAVA_HOMEは、JAVAのインストールされているディレクトリ
HADOOP_HOMEは、Hadoopのインストールされているディレクトリ
HADOOP_STREAMINGは、Hadoopの中のhadoop-streaming-*.jarのファイル

次のように、引数に文書ファイルを指定して実行する。

$ sh ./teniwoha-hadoop.sh bocchan.txt

結果はoutputs.strファイルに保存される。

実行時間は、Hadoopのクラスタ環境(ノード数、ノードの性能等)に
より変わる。


4. Network(WWW)上の文章を分析する処理

次のように、引数に文書ファイルを指定して実行する。

$ sh ./teniwoha-http.sh http://news.google.co.jp/

結果はoutputs.strファイルに保存される。

5. Network(WWW)上の文章をhadoopを使って分析する処理

次のように、引数に文書ファイルを指定して実行する。

$ sh ./teniwoha-http-hadoop.sh http://news.google.co.jp/

結果はoutputs.strファイルに保存される。

以上


