擬似分散モードの動作確認

| # Comments
先日セットアップした擬似分散モードの動作確認を行います。

テストに使うサンプルはいつものやつと、そのScala版Pig版です。

  • Hadoop: 0.20.2
  • Pig: 0.6.0
  • Scala: 2.8.0.Beta1

を利用します。
それぞれインストールが完了していて、Hadoopは擬似分散モードの準備が出来ているものとします。

hadoop-aggregate

まずは標準的なJava版の動作確認です。

以前作成したものは、ローカルでなければ実行できない状態でしたので、若干の修正を加えてあります。(diff)

$ git clone https://github.com/ueshin/hadoop-aggregate.git
$ cd hadoop-aggregate
$ git checkout hadoop-aggregate-0.20.2

でチェックアウトできます。

また https://github.com/ueshin/hadoop-aggregate/tree/hadoop-aggregate-0.20.2 でブラウズできます。

また、Hadoopに接続するための設定を追加してあります。


実行

このプログラムは、外部ライブラリ commons-lang-2.4.jar を利用しているので、クラスパスを設定する必要があります。

${HADOOP_HOME}/libにjarファイルを設置するか、 ${HADOOP_HOME}/conf/hadoop-env.shファイル内 HADOOP_CLASSPATH変数に jarファイルへのパスを追加してください。

準備ができたらHadoopを起動します。

$ sudo su - hadoop
$ ${HADOOP_HOME}/bin/start-all.sh

HDFSへファイルをput

$ ${HADOOP_HOME}/bin/hadoop fs -put test/resources input

プログラムの実行

$ mvn -P pseudo clean package
$ sh target/appassembler/bin/aggregator input output

結果確認

$ ${HADOOP_HOME}/bin/hadoop fs -cat output/part-r-00000

以前のものと同じ結果が表示されたと思います。

hadoop-scala-aggregate

次にScala版。
こちらも、分散環境向けに修正をしてあります。 (diff)

$ git clone https://github.com/ueshin/hadoop-scala-aggregate.git
$ cd hadoop-scala-aggregate
$ git checkout hadoop-scala-aggregate-0.20.2

でチェックアウトできます。

また https://github.com/ueshin/hadoop-scala-aggregate/tree/hadoop-scala-aggregate-0.20.2 でブラウズできます。

また、Hadoopに接続するための設定を追加してあります。


実行

先程の結果ディレクトリは削除もしくはリネームしておいてください。

それでは実行してみます。

$ mvn -P pseudo clean package
$ sh target/appassembler/bin/aggregator input output
$ ${HADOOP_HOME}/bin/hadoop fs -cat output/part-r-00000

pig-scala-aggregate

最後にPigを実行してみます。

ローカルで実行するよう実装されていましたので、若干の修正を加えてあります。(diff)
プログラムへの第1引数をlocal/mapredモードの切替として指定します。

$ git clone https://github.com/ueshin/pig-scala-aggregate.git
$ cd pig-scala-aggregate
$ git checkout pig-scala-aggregate-0.6.2

でチェックアウトできます。

また https://github.com/ueshin/pig-scala-aggregate/tree/pig-scala-aggregate-0.6.2 でブラウズできます。

また、Embedded Pigで Hadoopに接続するための設定を追加してあります。
(Pig Latinスクリプトの実行時にはこの設定は必要ありません。)


もしくは、以下で説明するpig.propertiesresourcesに設置しても動作します。
Embedded Pigの場合には、pig.propertiesファイルの方がいいかもしれません。

Embedded Pigの実行

まずはEmbedded Pigを実行してみます。

$ mvn clean package
$ sh target/appassembler/bin/aggregator mapred input output
$ ${HADOOP_HOME}/bin/hadoop fs -cat output/part-00000

Pig Latinスクリプトの実行

Pig Latinスクリプトを実行するには、Hadoopへ接続するための設定をする必要があります。

スクリプト実行をHadoopクラスタ内から実行する場合には、${PIG_HOME}/conf/pig-env.shファイル内PIG_CLASSPATH変数に${HADOOP_HOME}/confディレクトリを追加してください。

PIG_CLASSPATH=${HADOOP_HOME}/conf:/opt/local/share/scala-2.8/lib/scala-library.jar

クラスタ外から実行する場合には、fs.default.nameを設定したcore-site.xmlファイルとmapred.job.trackerを設定したmapred-site.xml${PIG_HOME}/confディレクトリに設置するか、もしくは${PIG_HOME}/conf/pig.propertiesファイルで設定することもできます。

fs.default.name=hdfs://localhost:9000
mapred.job.tracker=localhost:9001

それでは実行してみます。

$ mvn clean package
$ ${PIG_HOME}/bin/pig -param jar=target/pig-scala-aggregate-0.6.2.jar -param input=input -param output=output src/main/pig/Aggregator.pig
$ ${HADOOP_HOME}/bin/hadoop fs -cat output/part-00000

おまけ

Hadoopに付属のWebUIを使えば、MapReduceの履歴や実行中の進捗を確認したり、HDFS内のブラウズをすることができます。


Hadoopを起動した時点でWebUIも起動します。
これでどれくらいHadoopが頑張ってくれているかを眺めるのも楽しいですね。

comments powered by Disqus

Twitter Icon

AdSense

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 5.14-ja

Google検索

カスタム検索

2013年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31