Hadoop入门进阶课程7--Pig介绍、安装与应用案例

简介:

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  。该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237

【注】该系列所使用到安装包、测试数据和代码均可在百度网盘下载,具体地址为http://pan.baidu.com/s/10PnDs,下载该PDF文件

1搭建环境

部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown R shiyanlou:shiyanlou /app)。

Hadoop搭建环境:

l  虚拟机操作系统: CentOS6.6  64位,单核,1G内存

l  JDK1.7.0_55 64

l  Hadoop1.1.2

2Pig介绍

Pigyahoo捐献给apache的一个项目,使用SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的MapReduce中。Pig 有两种运行模式: Local 模式和 MapReduce 模式

l  本地模式:Pig运行于本地模式,只涉及到单独的一台计算机

l  MapReduce模式:Pig运行于MapReduce模式,需要能访问一个Hadoop集群,并且需要装上HDFS

Pig的调用方式:

l  Grunt shell方式:通过交互的方式,输入命令执行任务;

l  Pig script方式:通过script脚本的方式来运行任务;

嵌入式方式:嵌入java源代码中,通过java调用来运行任务。

3搭建Pig环境

3.1 下载并解压安装包

Apache下载最新的Pig软件包,点击下载会推荐最快的镜像站点,以下为下载地址:http://mirror.bit.edu.cn/apache/pig/

clip_image002[4]

也可以在/home/shiyanlou/install-pack目录中找到该安装包,解压该安装包并把该安装包复制到/app目录中

cd /home/shiyanlou/install-pack

tar -xzf pig-0.13.0.tar.gz

mv pig-0.13.0 /app

clip_image004[4]

3.2 设置环境变量

使用如下命令编辑/etc/profile文件:

sudo vi /etc/profile

clip_image006[4]

设置pigclass路径和在path加入pig的路径,其中PIG_CLASSPATH参数是设置pigMapReduce工作模式:

export PIG_HOME=/app/pig-0.13.0

export PIG_CLASSPATH=/app/hadoop-1.1.2/conf

export PATH=$PATH:$PIG_HOME/bin

clip_image008[4]

编译配置文件/etc/profile,并确认生效

source /etc/profile

echo $PATH

3.3 验证安装完成

重新登录终端,确保hadoop集群启动,键入pig命令,应该能看到pig连接到hadoop集群的信息并且进入了grunt shell命令行模式:

clip_image010[4]

4测试例子

4.1 测试例子内容

/home/shiyanlou/install-pack/class7中有website_log.zip测试数据文件,该文件是某网站访问日志,请大家使用pig计算出每个ip的点击次数,例如 123.24.56.57 13 24.53.23.123 7 34.56.78.120 20 .... 等等

4.2 程序代码

 

复制代码
 1 //加载HDFS中访问日志,使用空格进行分割,只加载ip列
 2 records = LOAD 'hdfs://hadoop:9000/class7/input/website_log.txt' USING PigStorage(' ') AS (ip:chararray);
 3 
 4 // 按照ip进行分组,统计每个ip点击数
 5 records_b = GROUP records BY ip;
 6 records_c = FOREACH records_b GENERATE group,COUNT(records) AS click;
 7 
 8 // 按照点击数排序,保留点击数前10个的ip数据
 9 records_d = ORDER records_c by click DESC;
10 top10 = LIMIT records_d 10;
11 
12 // 把生成的数据保存到HDFS的class7目录中
13 STORE top10 INTO 'hdfs://hadoop:9000/class7/out';
复制代码

4.3 准备数据

可以在/home/shiyanlou/install-pack/class7中找到本节使用的测试数据website_log.zip文件,使用unzip文件解压缩,然后调用hadoop上传本地文件命令把该文件传到HDFS中的/class7目录,如下图所示:

cd /home/shiyanlou/install-pack/class7

unzip website_log.zip

ll

hadoop fs -mkdir /class7/input

hadoop fs -copyFromLocal website_log.txt /class7/input

hadoop fs -cat /class7/input/website_log.txt | less

 

clip_image012[4]

4.4 实现过程

4.4.1 输入代码

进入pig shell 命令行模式:

clip_image014[4]

输入代码:

clip_image016[3]

4.4.2 运行过程

在执行过程中在JobTracker页面观察运行情况,链接地址为:http://**.***.**.***:50030/jobtracker.jsp

clip_image018[3]

点击查看具体作业信息

clip_image020[3]

可以观察到本次任务分为4个作业,每个作业一次在上一次作业的结果上进行计算

clip_image022[3]

clip_image024[3]

4.4.3 运行结果

通过以下命令查看最后的结果:

hadoop fs -ls /class7/out

hadoop fs -cat /class7/out/part-r-00000

clip_image026[3]






本文转自shishanyuan博客园博客,原文链接:http://www.cnblogs.com/shishanyuan/p/4648015.html    ,如需转载请自行联系原作者








相关文章
|
4月前
|
存储 分布式计算 资源调度
Hadoop入门基础(三):如何巧妙划分Hadoop集群,全面提升数据处理性能?
Hadoop入门基础(三):如何巧妙划分Hadoop集群,全面提升数据处理性能?
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
89 3
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
56 2
|
3月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
94 3
|
4月前
|
分布式计算 资源调度 Hadoop
centos7二进制安装Hadoop3
centos7二进制安装Hadoop3
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(四):Hadoop启动踩坑记录
Hadoop入门基础(四):Hadoop启动踩坑记录
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(二)
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(二)
|
4月前
|
分布式计算 Ubuntu Hadoop
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(一)
Hadoop入门基础(二):Hadoop集群安装与部署详解(超详细教程)(一)
|
4月前
|
存储 分布式计算 资源调度
Hadoop入门基础(一):深入探索Hadoop内部处理流程与核心三剑客
Hadoop入门基础(一):深入探索Hadoop内部处理流程与核心三剑客

相关实验场景

更多