Pigのインストール
勝手にHadoop環境構築シリーズ、今回はPigのインストールです。
・第一回:Ubuntu10.04でHadoop環境構築(疑似分散編)
・第二回:HadoopのHDFS確認とサンプルプログラムの実行
PigとはHadoopファミリーの一つで、Map-Reduceを生成するコンパイラと
Pig Latinと呼ばれるテキストベースの言語のセットです。
プログラミングを簡単にする、コードの最適化、
ユーザー独自関数による高い拡張性などの特徴があります。
例えば、以下のような特徴を備えています。
・10LinesのPig Latinは200LinesのJavaコードに相当する
・Javaで書くと4時間かかるけど、Pig Latinだと15分で書ける
・join、group、filter、sortの一般的なオペレーションが記述可能
(JavaのMapReduceで記述するのはちょっと面倒)
※Clouderaのチュートリアルサイトより引用
前提条件
前回からの流れでUbuntuを前提にしています。
Pigは自動的にActiveなHadoop構成を使用します。
事前にHadoop環境を構築しておいてください。
参考サイト:第一回:Ubuntu10.04でHadoop環境構築(疑似分散編)
構築するモードは、standaloneでも疑似分散でも完全分散でも良いようです。
Pigのインストール
インストール自体は簡単
以下のコマンドをroot権限で実行
# apt-get -y install hadoop-pig
export JAVA_HOME=/usr/lib/jvm/java-6-sun/
Pig起動の確認
$ pig 2010-06-02 22:37:45,842 [main] INFO org.apache.pig.Main - Logging error messages to: /home/ubuntu/pig_1275485865841.log 2010-06-02 22:37:46,209 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://localhost:8020 2010-06-02 22:37:46,506 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: localhost:8021 grunt>
起動に意外と時間がかかる時がある
2〜3分程度
grunt shellでHDFSの確認
grunt> ls hdfs://localhost/user/root/input <dir>
Pigでサンプルの「grep」と同じ動作を実行
grunt> A = LOAD 'input'; grunt> B = FILTER A BY $0 MATCHES '.*dfs[a-z.]+.*'; grunt> DUMP B; (結果) 2010-06-02 22:45:22,662 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer - MR plan size before optimization: 1 2010-06-02 22:45:22,662 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer - MR plan size after optimization: 1 2010-06-02 22:45:23,488 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler - Setting up single store job (中略) 2010-06-02 22:45:59,941 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Successfully stored result in: "hdfs://localhost/tmp/temp999939448/tmp-1040540214" 2010-06-02 22:45:59,959 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Records written : 4 2010-06-02 22:45:59,959 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Bytes written : 223 2010-06-02 22:45:59,959 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Success! ( dfsadmin and mradmin commands to refresh the security policy in-effect. ) ( <name>dfs.replication</name>) ( <name>dfs.permissions</name>) ( <name>dfs.name.dir</name>)
結果が、「stored result in」に出ているので確認
ブラウザで確認できる
ファイルを見ると、6つ作成されているのが分かる
Mapが6個動いて、まとめのReduceが動いていない(存在しない)
このMapReduceの動作もブラウザで確認できる