下載Pig 可以執行在Hadoop 0.20.*css
http://mirror.bit.edu.cn/apache/pig/pig-0.11.1/pig-0.11.1.tar.gzhtml
也可以依據你的Hadoop版本號選擇相應的版本號下載:http://hadoop.apache.org/pig/releases.htmlnode
我當前的Hadoop 版本號是 hadoop-0.20.2 apache
tar -xvf pig-0.11.1.tar.gz分佈式
爲了方便,可以把Pig的程序文件夾放到命令行路徑裏。比方:grunt
% export PIG_INSTALL=/usr/local/hadoop/pig-0.11.1oop
% export PATH=$PATH:$PIG_INSTALL/binpost
Pig有兩種模式:spa
一種是Local mode,也就是本地模式,這樣的模式下Pig執行在一個JVM裏,訪問的是本地的文件系統。僅僅適合於小規模數據集,一般是用來體驗Pig。命令行
而且,它並沒實用到Hadoop的Local runner,Pig把查詢轉換爲物理的Plan,而後本身去執行。
在終端下輸入
% pig -x local
就可以進入Local模式了。
另外一種就是Hadoop模式了,這樣的模式下。Pig才真正的把查詢轉換爲相應的MapReduce Jobs,並提交到Hadoop集羣去執行。集羣可以是真實的分佈式也可以是僞分佈式。要想Pig能認識Hadoop。你要告訴它Hadoop的版本號以及一些關鍵daemon的信息(也就是Namenode和Jobtracker的Address和Port)。
比方,如下這個可以贊成Pig鏈接到不論什麼Hadoop0.20.*上:
% export PIG_HADOOP_VERSION=20
接下來,你還要指明集羣的Namenode和Jobtracker的所在。有兩種方法,一種就是把你Hadoop的Conf地址加入到Pig的Classpath上:
% export PIG_CLASSPATH=$HADOOP_INSTALL/conf/
另外一種就是在Pig文件夾的Conf文件夾(可能需要本身建立)裏建立一個pig.properties文件,而後在裏面加入集羣的Namenode和Jobtracker的信息:
fs.default.name=hdfs://idc01-vm-test-124/
#依據您的Hadoop配置進行設置
mapred.job.tracker=idc01-vm-test-124:9000
接下來執行PIG
[root@idc01-vm-test-124 conf]# pig
2014-04-19 20:13:15,775 [main] INFO org.apache.pig.Main - Apache Pig version 0.10.0-cdh4.1.2 (rexported) compiled Nov 01 2012, 18:38:58
2014-04-19 20:13:15,776 [main] INFO org.apache.pig.Main - Logging error messages to: /usr/local/hadoop/pig-0.11.1/conf/pig_1397909595772.log
2014-04-19 20:13:16,009 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///
2014-04-19 20:13:16,014 [main] WARN org.apache.hadoop.conf.Configuration - fs.default.name is deprecated. Instead, use fs.defaultFS
2014-04-19 20:13:16,227 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: localhost:9016
2014-04-19 20:13:16,229 [main] WARN org.apache.hadoop.conf.Configuration - fs.default.name is deprecated. Instead, use fs.defaultFS
grunt>