首页 > Linux操作系统 > Linux操作系统 > PIG安装配置及案例应用
1.各组件版本
Linux ISO:CentOS-6.0-i386-bin-DVD.iso 32位
JDK version:"1.6.0_25-ea"
Hadoop software version:hadoop-0.20.205.0.tar.gz
Hbase version:hbase-0.90.5
Pig version:pig-0.9.2.tar.gz http://mirror.bjtu.edu.cn/apache/pig/pig-0.9.2/pig-0.9.2.tar.gz 北京大学的apache镜像下载 ,这个版本呢其实不是最新的但和hadoop0.20.2版本匹配,pig版本与hadoop版本也是有配达要求的,请注意你自己的安装的hadoop版本是啥,上网搜索一下对应的版本,当然从上面的网站上可以下载pig全系列,例如pig-0.10.0.tar.gz 这里我就不一一举例了。
2.Pig安装模式
Local模式:实际就是单机模式,pig只能访问本地一台主机,没有分布式,甚至可以不用安装hadoop,所有的命令执行和文件读写都在本地进行,常用于作业实验。
Local模式:只需要配置export
PATH=/usr/java/jdk1.6.0_25/bin:/home/grid/hadoop-0.20.2/bin:/home/grid/pig-0.9.2/bin:$PATH 1个环境变量即可
MapReduce模式:这种模式才是实际应用中的工作模式,它可以将文件上传到HDFS系统中,在使用pig latin语言运行作业时,可以将作业分布在hadoop集群中完成,这也体现了MapReduce的思想,这样我们通过pig客户端连接hadoop集群进行数据管理和分析工作。
需要配置PATH PIG_CLASSPATH hosts文件 启动pig
本次主要介绍MapReduce模式安装,因为这种安装模式在实际中最常用也是最有意义的。
Pig作为hadoop的客户端,Pig安装包可以安装在集群任何节点上,它可以在任何节点上提交作业,我这次安装在master节点上为了是方便了解部署架构。
3.验证Hadoop集群状态
使用shell命令行方式验证
[grid@h1 hadoop-0.20.2]$ bin/hadoop dfsadmin -report
Configured Capacity: 19865944064 (18.5 GB)
Present Capacity: 8833888256 (8.23 GB)
DFS Remaining: 8833495040 (8.23 GB)
DFS Used: 393216 (384 KB)
DFS Used%: 0%
Under replicated blocks: 4
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 2 (2 total, 0 dead) --2个节点存活无shutdown
Name: 192.168.2.103:50010 -- slaves h2
Decommission Status : Normal --状态正常
Configured Capacity: 9932972032 (9.25 GB)
DFS Used: 196608 (192 KB)
Non DFS Used: 5401513984 (5.03 GB)
DFS Remaining: 4531261440(4.22 GB)
DFS Used%: 0%
DFS Remaining%: 45.62%
Last contact: Fri Nov 02 18:58:02 CST 2012
Name: 192.168.2.105:50010 -- slaves h4
Decommission Status : Normal --状态正常
Configured Capacity: 9932972032 (9.25 GB)
DFS Used: 196608 (192 KB)
Non DFS Used: 5630541824 (5.24 GB)
DFS Remaining: 4302233600(4.01 GB)
DFS Used%: 0%
DFS Remaining%: 43.31%
Last contact: Fri Nov 02 18:58:02 CST 2012
[grid@h1 hadoop-0.20.2]$ jps master -> hadoop 和 hbase 都启动了
22926 HQuorumPeer
4709 JobTracker
22977 HMaster
4515 NameNode
4650 SecondaryNameNode
31681 Jps
[grid@h2 tmp]$ jps slave1 -> hadoop 和 hbase 都启动了
17188 TaskTracker
22181 Jps
13800 HRegionServer
13727 HQuorumPeer
17077 DataNode
[grid@h4 logs]$ jps slave2 -> hadoop 和 hbase 都启动了
27829 TaskTracker
19978 Jps
26875 Jps
17119 DataNode
11636 HRegionServer
11557 HQuorumPeer
4.Pig安装与配置
(1)把pig-0.9.2.tar.gz上传到h1:/home/grid/目录下并tar解包
[grid@h1 grid]$ pwd
/home/grid
[grid@h1 grid]$ ll
总用量 46832
-rwxrwxrwx. 1 grid hadoop 44 9月 18 19:10 abc.txt
-rwxrwxrwx. 1 grid hadoop 5519 10月 12 22:09 Exercise_1.jar
drwxr-xr-x. 14 grid hadoop 4096 9月 18 07:05 hadoop-0.20.2
drwxr-xr-x. 10 grid hadoop 4096 10月 28 21:13 hbase-0.90.5
-rwxrw-rw-. 1 grid hadoop 47875717 11月 2 06:44 pig-0.9.2.tar.gz
[grid@h1 grid]$ tar -zxvf pig-0.9.2.tar.gz
[grid@h1 grid]$ ll
总用量 46836
-rwxrwxrwx. 1 grid hadoop 44 9月 18 19:10 abc.txt
-rwxrwxrwx. 1 grid hadoop 5519 10月 12 22:09 Exercise_1.jar
drwxr-xr-x. 14 grid hadoop 4096 9月 18 07:05 hadoop-0.20.2
drwxr-xr-x. 10 grid hadoop 4096 10月 28 21:13 hbase-0.90.5
drwxr-xr-x. 2 grid hadoop 4096 9月 16 19:57 input
drwxr-xr-x. 15 grid hadoop 4096 1月 18 2012 pig-0.9.2
-rwxrw-rw-. 1 grid hadoop 47875717 11月 2 06:44 pig-0.9.2.tar.gz
(2)配置Pig的环境变量 红色字体都是要修改的
[grid@h1 grid]$ vim .bashrc
export JAVA_HOME=/usr --不要写java目录本身,要写上级目录才生效
export JRE_HOME=/usr/java/jdk1.6.0_25/jre
export
PATH=/usr/java/jdk1.6.0_25/bin:/home/grid/hadoop-0.20.2/bin:/home/grid/pig-0.9.2/bin:$PATH
--添加hadoop软件命令目录和pig软件命令目录,作用告诉shell命令行到哪个目录下去找命令or程序
export CLASSPATH=./:/usr/java/jdk1.6.0_25/lib:/usr/java/jdk1.6.0_25/jre/lib
export PIG_CLASSPATH=/home/grid/hadoop-0.20.2/conf --既然是MapReduce模式,就要让Pig软件找到Hadoop集群,这里是告诉pig软件hadoop的配置文件在哪里,通过一系列配置文件core_site.xml hdfs-site.xml mapred-site.xml 可以找到关键参数NameNode 和 JobTracker 的位置以及端口信息,有了这些信息就可以对整个集群进行控制了。
方法二 编辑/home/grid/pig-0.9.2/conf /pig.properties 也可以启动MapReduce模式
添加
fs.default.name= hdfs://h1:9000 找到namenode信息
mapred.job.tracker= h1:9001 找到jobtracker信息
(3)使环境变量生效
[grid@h1 grid]$ source .bashrc 加载环境变量使之生效
(4)查看hosts文件
[grid@h1 grid]$ cat /etc/hosts
192.168.2.102 h1 # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 h1 localhost6.localdomain6 localhost6
192.168.2.102 h1
192.168.2.103 h2
192.168.2.105 h4
这个文件是主机名和IP地址映射文件,一般在Hadoop集群中都使用主机名进行通信的,在配置文件中也使用主机名进行配置。
(5)启动pig
[grid@h1 grid]$ pig -x mapreduce 也可以只用pig命令进入shell
2012-11-02 20:09:22,149 [main] INFO org.apache.pig.Main - Logging error messages to: /home/grid/pig_1351858162147.log
2012-11-02 20:09:23,314 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://h1:9000 --pig找到namenode
2012-11-02 20:09:27,950 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: h1:9001 --pig找到jobtracker
grunt> quit 退出pig客户端
[grid@h1 grid]$
[grid@h1 grid]$ pig 也可以只用pig命令进入shell
2012-11-02 20:16:17,968 [main] INFO org.apache.pig.Main - Logging error messages to: /home/grid/pig_1351858577966.log
2012-11-02 20:16:18,100 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://h1:9000
2012-11-02 20:16:18,338 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: h1:9001
grunt> help 帮助命令列表
Commands:
File system commands:
fs
Diagnostic commands:
describe explain [-script. [-param_file -script. - Explain the entire script. -out - Store the output into directory rather than print to stdout. -brief - Don't expand nested plans (presenting a smaller graph for overview). -dot - Generate the output in .dot format. Default is text format. -param -param_file alias - Alias to explain. dump Utility Commands: exec [-param