Pig相當(dāng)于Hadoop的客戶端軟件,它可以連接到Hadoop,通過Pig Lating這種類似SQL的面向數(shù)據(jù)流的語言對數(shù)據(jù)進(jìn)行處理。
用Pig Lating編寫的程序,在Pig中執(zhí)行。Pig把Pig Lating編寫的程序編譯成MapReduce作業(yè),上傳到集群中執(zhí)行。
Pig可以看作Pig Lating到MapReduce的映射器。
1、下載Pig,我這里下載的是pig-0.9.2.tar.gz,放到/home/coder/目錄下。
2、解壓Pig。
[coder@h1 ~]$ tar -zxvf pig-0.9.2.tar.gz
3、編輯/etc/profile,在文件最后面加上如下內(nèi)容
PIG_INSTALL=/home/coder/pig-0.9.2 PATH=$PIG_INSTALL/bin:$JAVA_HOME/bin:$PATH
再執(zhí)行下面的命令,使配置生效
source /etc/profile
4、進(jìn)入Pig的本地模式:pig -x local
[coder@h1 ~]$ pig -x local
which: no hadoop in (/home/coder/pig-0.9.2/bin:/usr/java/jdk1.6.0_37/bin:/usr/java/jdk1.6.0_37/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
2013-04-19 21:38:09,577 [main] INFO org.apache.pig.Main - Logging error messages to: /home/coder/pig_1366378689555.log
2013-04-19 21:38:10,260 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///
grunt>
本地模式,所有文件和執(zhí)行過程都在本地執(zhí)行,一般用于測試程序。
5、配置Pig的MapReduce模式
1)配置/etc/profile,在文件最后面添加,內(nèi)容如下:
JAVA_HOME=/usr/java/jdk1.6.0_37 PIG_INSTALL=/home/coder/pig-0.9.2 HADOOP_INSTALL=/home/coder/hadoop-0.20.2 PIG_CLASSPATH=$HADOOP_INSTALL/conf PATH=$HADOOP_INSTALL/bin:$PIG_INSTALL/bin:$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PIG_CLASSPATH export PATH export CLASSPATH
PIG_CLASSPATH指向hadoop的安裝路徑下的conf目錄,如果Pig和Hadoop不在同一臺(tái)機(jī)器上,則需要從安裝有Hadoop的機(jī)器上把hadoop安裝路徑下的conf目錄復(fù)制到安裝Pig的機(jī)器上,然后然PIG_CLASSPATH指向conf目錄。
2)執(zhí)行 source /etc/profile命令,使得配置生效
3)如果Pig和Hadoop不在同一臺(tái)機(jī)器上,則在Pig所在的機(jī)器上還要配置/etc/hosts文件,跟其他hadoop機(jī)器上的hosts配置一致
4)進(jìn)入Pig的MapReduce模式:pig
[coder@h1 ~]$ pig 2013-04-19 22:14:30,539 [main] INFO org.apache.pig.Main - Logging error messages to: /home/coder/pig_1366380870538.log 2013-04-19 22:14:30,790 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://192.168.0.129:9000 2013-04-19 22:14:30,899 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: 192.168.0.129:9001 grunt>