Pig是一个客户端应用程序,就算你要在Hadoop集群上运行Pig,也不需要在集群上装额外的东西。Pig的配置非常简单:
1、下载pig,网址http://pig.apache.org/
2、在机器上安装完成hadoop和jdk等。
3、修改配置文件(.profile)
export JAVA_HOME=/home/hadoop/sf/jdk1.7.0_07/
export PATH=$JAVA_HOME/bin:$PATH
export PIG_HOME=/home/hadoop/sf/pig-0.12.1/
export HADOOP_HOME=/home/hadoop/sf/hadoop-2.2.0/
export PIG_CLASS=HADOOP_HOME/etc/hadoop/
export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
4、Pig有两种模式:
一种是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://localhost/
mapred.job.tracker=localhost:8021