Pocket

Hadoop スタンドアロンモードでのMapReduceサンプル検証

  • add this entry to hatena bookmark

Hadoopがビッグデータ関連の書籍に記載されていたので実際に触ってみました。

まず、下調べとして、 Wiki を読んでから、次はクイックスタートを見ながら、実際に触ってみました。


インストール

rpmでバージョンは「1.0.2」をインストール。あとは、環境に応じて(Javaなど)。

起動準備設定

/etc/hadoop/hadoop-env.sh でJAVA_HOMEを設定する。

スタンドアロンモードで実行

スタンドアロンモードで実行してみる。しかし、OutOfMemoryが発生

java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:949)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:428)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)

いろいろ調べてみるが、以下で解決。

/etc/hadoop/mapred-site.xml に以下を追加。(<configuration>の間)

<property>
<name>io.sort.mb</name>
<value>30</value>
</property>

以上で、以下を実行できるようになった。

/usr/bin/hadoop jar /usr/share/hadoop/hadoop-examples-1.0.2.jar grep input output ‘dfs[a-z.]+’

検証

まず、以下の2つのテキストファイルを準備。

$ head input/test*.txt
==> input/test1.txt <==
may
sunday
monday

==> input/test2.txt <==
saturday
info
sunday
wednesday
monday
friday
$

以下のコマンドで実行する。

$ /usr/bin/hadoop jar /usr/share/hadoop/hadoop-examples-1.0.2.jar wordcount input output
12/05/07 22:54:47 INFO util.NativeCodeLoader: Loaded the native-hadoop library
~中略~
12/05/07 22:54:57 INFO mapred.JobClient:     Combine output records=9
12/05/07 22:54:57 INFO mapred.JobClient:     Physical memory (bytes) snapshot=0
12/05/07 22:54:57 INFO mapred.JobClient:     Reduce output records=7
12/05/07 22:54:57 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=0
12/05/07 22:54:57 INFO mapred.JobClient:     Map output records=9
$

結果を見てみる。

$ cat output/part-r-00000
friday  1
info    1
may     1
monday  2
saturday        1
sunday  2
wednesday       1
$

OK!

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。