ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PIG安装配置及案例应用

PIG安装配置及案例应用

Linux操作系统 作者:小猛奋斗 时间:2013-12-03 10:41:36 0 删除 编辑

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:

; - See the PigLatin manual for details: http://hadoop.apache.org/pig

File system commands:

    fs - Equivalent to Hadoop dfs command: http://hadoop.apache.org/common/docs/current/hdfs_shell.html

Diagnostic commands:

    describe [::

    explain [-script. ] [-out ] [-brief] [-dot] [-param =]

        [-param_file ] [] - Show the execution plan to compute the alias or for entire script.

        -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 - See parameter substitution for details.

        alias - Alias to explain.

    dump - Compute the alias and writes the results to stdout.

Utility Commands:

    exec [-param =param_value] [-param_file ]

请登录后发表评论 登录
全部评论