MapReduceを試してみる_wordcount

今回はHadoopの分散処理MapReduceを試してみます。

サンプルプログラムの確認

あらかじめサンプルプログラムが複数用意されているので確認してみます。
サンプルプログラムはhadoop-examples-1.2.1.jar”です。

[hadoop@localhost hadoop-1.2.1]$ hadoop jar hadoop-examples-1.2.1.jar  

An example program must be given as the first argument.
Valid program names are:
  aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.
  aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.
  dbcount: An example job that count the pageview counts from a database.
  grep: A map/reduce program that counts the matches of a regex in the input.
  join: A job that effects a join over sorted, equally partitioned datasets
  multifilewc: A job that counts words from several files.
  pentomino: A map/reduce tile laying program to find solutions to pentomino problems.
  pi: A map/reduce program that estimates Pi using monte-carlo method.
  randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.
  randomwriter: A map/reduce program that writes 10GB of random data per node.
  secondarysort: An example defining a secondary sort to the reduce.
  sleep: A job that sleeps at each map and reduce task.
  sort: A map/reduce program that sorts the data written by the random writer.
  sudoku: A sudoku solver.
  teragen: Generate data for the terasort
  terasort: Run the terasort
  teravalidate: Checking results of terasort
  wordcount: A map/reduce program that counts the words in the input files.

aggregatewordcountからwordcountまで18個あります。

今回は”wordcount:ファイル中の単語の出現回数を集計する”を実行します。

ファイルの準備

wordcount対象のファイル/tmp/sudati.txtをHDFSへコピーします。

ファイルコピー
[hadoop@localhost hadoop-1.2.1]$ hadoop fs -put /tmp/sudati.txt /user/hadoop
ファイル確認
[hadoop@localhost hadoop-1.2.1]$ hadoop fs -ls
Found 1 items
-rw-r--r--   1 hadoop supergroup         56 2014-03-07 04:18 /user/hadoop/sudati.txt
ファイルの中身確認
[hadoop@localhost hadoop-1.2.1]$ hadoop fs -cat /user/hadoop/sudati.txt
hello sudati world
sudati tarou
sudati hanako
win
win

プログラム実行

hadoop-examples-1.2.1.jarは
第1引数にプログラム名
第2引数に対象ファイル
第3引数に結果出力ディレクトリ
をとります。

[hadoop@localhost hadoop-1.2.1]$ hadoop jar hadoop-examples-1.2.1.jar wordcount /user/hadoop/sudati.txt /user/hadoop/output

結果の確認

結果出力ディレクトリの中身確認
[hadoop@localhost hadoop-1.2.1]$ hadoop fs -ls /user/hadoop/output
Found 3 items
-rw-r--r--   1 hadoop supergroup          0 2014-03-07 04:24 /user/hadoop/output/_SUCCESS
drwxr-xr-x   - hadoop supergroup          0 2014-03-07 04:24 /user/hadoop/output/_logs
-rw-r--r--   1 hadoop supergroup         48 2014-03-07 04:24 /user/hadoop/output/part-r-00000
集計結果確認
[hadoop@localhost hadoop-1.2.1]$ hadoop fs -cat /user/hadoop/output/part-r-00000
hanako  1
hello   1
sudati  3
tarou   1
win     2
world   1

集計されていることが確認できました。

GUI上でJobの確認

ブラウザでhttp://JobtrackerのIP:50030にアクセス
Completed Jobsを確認します。

f:id:kashigeru:20140314224622j:plain

初歩的な内容ですが、小さなことからコツコツと。
ベースをしっかり築いてWin-Win!!
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)

Hadoop徹底入門 第2版 オープンソース分散処理環境の構築

Hadoop徹底入門 第2版 オープンソース分散処理環境の構築

広告を非表示にする