Appache Pig取付配置


引用:http://www.cnblogs.com/spork/archive/2009/12/29/1634761.html
PigはYahooがapacheに寄付するプロジェクトの一つで、SQL-like言語であり、MapReduceで構築された高度なクエリ言語であり、いくつかの演算をMapReduceモデルのMapとReduceにコンパイルし、ユーザーは自分の機能を定義することができます.これはYahooが開発したもう一つのGoogleをクローンするプロジェクトです.Sawzall.
Pigはクライアントアプリケーションです.Hadoopクラスタ上でPigを実行するにしても、クラスタに追加のものをインストールする必要はありません.Pigの取り付けはほこりの多い簡単なものです.
1、JAVA 6(WindowsではCygwin)をインストールし、JAVA_を設置します.ホーム・ゲーム
%export JAVA_HOME=/home/tom/jdk 1.6
2、http://hadoop.apache.org/pig/releases.htmlに安定した発行版をダウンロードします.(現在は0.0.5%で、Hadoop-0200.*で運行できます.)
%tar xzf pig-x.y.z.tar.gz
3、便利さのために、Pigのプログラムディレクトリをコマンドラインのパスに入れることができます.例えば、
%export PIG_INSTALL=/home/tom/pig-x.y.z
%export PATH=$PATH:$PIG_INSTALL/bin
ログアウトまたは再起動すれば、pig-helpで確認できます.インストールは簡単ですよね?:
Pigには2つのモードがあります.
一つはLocal modeで、つまりローカルモードです.このようなモードではPigはJVMで運行しています.訪問は地元のファイルシステムです.小規模のデータセットにしか適していません.普通はPigを体験するために使われます.また、HadoopのLocal runnerを使っていません.Pigはクエリを物理的なPlanに変換し、自分で実行します.
ターミナルの下で入力
%pig-x local
Localモードに入ることができます.
もう一つはHadoopモードです.このようなモードでは、Pigは本当にクエリをMapReduce Jobsに変換し、Hadoopクラスタに提出して実行します.クラスタは本物の分布式であっても良いです.PigがHadoopを知るためには、Hadoopのバージョンといくつかのキーdaemenの情報(つまりNamenodeとJobtrakerのAddressとPort)を教えてください.たとえば、以下のこれは任意のHadoop 0.20.*にPigを接続することができます.
%export PIG_HADOOP_VERION=20
次に、クラスタのNamenodeとJobtrackerの所在を指定します.二つの方法があります.一つはあなたのHadoopのConfアドレスをPigのクラスパスに追加することです.
%export PIG_CLASSPATH=$HADOOP_INSTALL/conf/
もう一つはPigディレクトリのConfフォルダにpig.propertiesファイルを作成して、中にクラスタのNamenodeとJobtrackerの情報を追加します.
fs.default.name=hdfs:/local host/
mapred.job.trocer=local host:8021
完了後、端末で以下のコマンドを実行します.
%pig
次のメッセージが見えます.
2009-03-29 21:22:20,489[main]INFOorg.apphe.pig.backend.hadoop.executionengine.
HExecution Engine–Connecting to hadoop file system at:hdfs://localhost/
2009-03-29 21:22:20,760[main]INFOorg.apphe.pig.backend.hadoop.executionengine.
HExecution Engine–Connecting to map-reduce job trocer at:local host:8021
grunt>
あなたが見ているように、PigレポートはすでにHadoopのNamenodeとJobtrakerにつながっています.
次の簡単なテストを行います.
dataはhadoop HDFS分散システムにおけるテキストファイルであり、内容は:
(3,8,9) (4,5,6)
(1,4,7) (3,7,5)
(2,5,8) (9,5,8)

A=LOAD'data'AS(t 1 a:tuple(t 1 a:int,t 1 b:int,t 1 c:int)、t 2:tuple(t 2 a:int,t 2 b:int,t 2 c:int)DUMP A;
結果を返します
(3、8、9)(1、4、7)(2、5、8)
apacheサイトの結果とは違いますが、成功して戻ってきました.pigが成功して運行中です.