pig安装配置及实例
一、前提
1、 hadoop集群环境配置好(本人hadoop版本:hadoop-2.7.3)
2、 windows基础环境准备:
jdk环境配置、esclipse环境配置
二、搭建pig环境
1、下载pig:
在Apache下载最新的Pig软件包,点击下载会推荐最快的镜像站点,以下为下载地址:http://mirror.bit.edu.cn/apache/pig/

2、上传pig(我的是上传到/opt/bigdata下面)

3、解压缩
[hadoop@wangmaster sbin]$ cd /opt/bigdata/
[hadoop@wangmaster bigdata]$ ls
docs hadoop-2.7..tar.gz hbase-1.2.-bin.tar.gz jdk1..tar.gz opt pig-0.17. zookeeper-3.4.
hadoop-2.7. hbase-1.2. jdk1. maxtemperaurte.jar output pig-0.17..tar.gz zookeeper-3.4..tar.gz
[hadoop@wangmaster bigdata]$ tar -xzvf pig-0.17.
4、设置环境变量
sudo vi /etc/profile
##设置pig的class路径和在path加入pig的路径,其中PIG_CLASSPATH参数是设置pig在MapReduce工作模式:
export PIG_HOME=/opt/bigdata/pig-0.17.
export PATH=$PATH: /opt/bigdata/hadoop-2.7./bin:$PIG_HOME/bin
##确认生效
source /etc/profile
5、验证安装完成
重新登录终端,确保hadoop集群启动,键入pig命令,应该能看到pig连接到hadoop集群的信息并且进入了grunt shell命令行模式:
如果需要退出的话,在pig的grunt shell下键入quit即可。

三、实例
如果在启动hadoop集群时候start-all.sh里面没有包含mapreduce.jobhistory.address这一项?那么进行手动启动。
./mr-jobhistory-daemon.sh start historyserver (在hadoop路径下sbin下执行)
实例要求:这里我们给出一个学生表(学号,姓名,性别,年龄,所在系),其中含有如下几条记录并保存在/opt/bigdata/ziliao/student.txt文件:
:Lihua:men::CST
:Wangli:women::CST
:Xiangming:women::CAT
:Lixiao:men::CST
:Wuda:women::CA
:Huake:men::CST
:Beihang:men::CA
:Bob:women::CAT
:Smith:men::CAT
:Gxl:men::CST
:Songwei:women::CA
:Weihua:men::CAT
:Weilei:women::CA
:Luozheng:men::CA
:Shangsi:women::CAT
:Fandong:men::CST
:Laosh:women::CAT
:Haha:men::CA
它们所对应的数据类型如下所示:
Student(sno:chararray, sname:chararray, ssex:chararray, sage:int,
sdept:chararray)
我们将在不同的运行方式下取出各个学生的姓名和年龄两个字段,执行结果如下:
(Lihua,)
(Wangli,)
(Xiangming,)
(Lixiao,)
(Wuda,)
(Huake,)
(Beihang,)
(Bob,)
(Smith,)
(Gxl,)
(Songwei,)
(Weihua,)
(Weilei,)
(Luozheng,)
(Shangsi,)
(Fandong,)
(Laosh,)
(Haha,)
1、local模式
进入grunt shell模式
[hadoop@wangmaster sbin]$ pig -x local
--加载数据(注意“=”左右两边要空格)
grunt> A = load '/opt/bigdata/ziliao/student.txt' using PigStorage(':') as (sno:chararray, sname:chararray, ssex:chararray, sage:int, sdept:chararray);
--从A中选出Student相应的字段(注意“=”左右两边要空格)
grunt> B = foreach A generate sname, sage;
--将B中的内容输出到屏幕上
grunt> dump B;

--将B的内容输出到本地文件中
grunt> store B into '/opt/bigdata/ziliao/result.txt';
--查看本地文件内容,没有''
grunt> cat /opt/bigdata/ziliao/result.txt;
(上面另一种执行方式—脚本文件)将下面语句存储到script.pig中(script.pig文件内容如下)
A = load '/opt/bigdata/ziliao/student.txt' using PigStorage(':') as (sno:chararray, sname:chararray, ssex:chararray, sage:int, sdept:chararray);
B = foreach A generate sname, sage;
dump B;
store B into '/opt/bigdata/ziliao/result1.txt';
执行pig -x local script.pig命令
查看结果:grunt> cat /opt/bigdata/ziliao/result.txt;
2、 MapReduce模式
首先将/opt/bigdata/ziliao/student.txt放到hadoop的in目录下
hadoop dfs -put /opt/bigdata/ziliao/student.txt /in
输入pig,进入shell编辑模式下
grunt> ls /in
hdfs://wangmaster:9000/docs<r 3> 104
hdfs://wangmaster:9000/hbase <dir>
hdfs://wangmaster:9000/input <dir>
hdfs://wangmaster:9000/output <dir>
hdfs://wangmaster:9000/student.txt<r 3> 525
hdfs://wangmaster:9000/tmp <dir>
hdfs://wangmaster:9000/wang <dir>
然后对其进行操作
输入目录变为hdfs://wangmaster:9000/in/student.txt
输出目录变为hdfs://wangmaster:9000/in/result.txt
(注意:脚本也是如此)。
A = load 'hdfs://wangmaster:9000/student.txt' using PigStorage(':') as (sno:chararray, sname:chararray, ssex:chararray, sage:int, sdept:chararray);
B = foreach A generate sname, sage;
dump B;
store B into 'hdfs://wangmaster:9000/result0.txt'
cat hdfs://wangmaster:9000/result0.txt;
第二例:求每个专业的最大的年龄人的相关信息:(数据还是上面的)
执行(在shell里面执行):
A = load '/opt/bigdata/ziliao/student.txt' using PigStorage(':') as (sno:chararray, sname:chararray, ssex:chararray, sage:int, sdept:chararray);
B = group A by sdept;
dump B;
max_age = foreach B generate group,MAX(A.sage);
dump = max_age;
输出结果:
(CA,)
(CAT,)
(CST,)
查找目标信息
CA = filter A by sdept == 'CA' and sage == ; (CA专业的最大年龄人的信息)
CAT0 = filter A by sdept == 'CAT' and sage == ; (不可用标识词)(CAT专业的最大年龄人的信息)
CST = filter A by sdept == 'CST' and sage == ; (CST专业的最大年龄人的信息)
pig安装配置及实例的更多相关文章
- pig安装配置
pig的安装配置很简单,只需要配置一下环境变量和指向hadoop conf的环境变量就行了 1.上传 2.解压 3.配置环境变量 Pig工作模式 本地模式:只需要配置PATH环境变量${PIG_HOM ...
- ActiveMQ安装配置及实例
本文可作为吴水成老师,dubbo课程第21节的学习笔记. ActiveMQ的介绍及功能 参考百度 ActiveMQ的下载 https://activemq.apache.org/activemq-51 ...
- Kali Linux下安装配置ProFTPD实例
1.安装ProFTPD 在ftp://ftp.proftpd.org/下能够找到官方公布的各个ProFTPD版本号,本人使用ftp://ftp.proftpd.org/historic/source/ ...
- CentOS7 MySql数据库安装配置(单实例)
一. 安装mysql-server 官网下载安装 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # ...
- OCM_第十六天课程:Section7 —》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
安装Nginx+Lua+OpenResty开发环境配置全过程实例 OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用. ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- 每天收获一点点------Hadoop基本介绍与安装配置
一.Hadoop的发展历史 说到Hadoop的起源,不得不说到一个传奇的IT公司—全球IT技术的引领者Google.Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的G ...
- Winform下CefSharp的引用、配置、实例与报错排除(源码)
Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...
随机推荐
- SSD boot test script for(if)循环
;Author : Bing Song ;// ;Usage: modify log drictory according to actual drictory gettime timestr &qu ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:使段落突出显示
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...
- Linux环境查看Java应用消耗资源情况
linux线上资源耗时定位 https://www.cnblogs.com/wuchanming/p/7766994.html 1. jps -ml 查看服务器上运行的Java程序 2. jmap 查 ...
- eclipse启动时权限不够的问题
eclipse启动时权限不够的问题 2009年04月28日 19:19:00 tomey21 阅读数 1445 安装好后每次都要用root权限运行,比较郁闷,摸索了一下,修改一下相关目录的权限就可 ...
- thymeleaf 学习笔记(转)
原文:http://blog.csdn.net/pdw2009/article/details/44410659 thymeleaf,我个人认为是个比较好的模板,性能也比一般的,比如freemaker ...
- ARM CORTEX-M3 内核架构理解归纳
ARM CORTEX-M3 内核架构理解归纳 来源:网络 个人觉得对CM3架构归纳的非常不错,因此转载 基于<ARM-CORTEX M3 权威指南>做学习总结: 在我看来,Cotex-M3 ...
- ssm 框架 使用ajax异步,实现登陆
只是简单写一下 js.jsp.和controller jsp <%@ page contentType="text/html;charset=UTF-8" language= ...
- windows 10 遥控操作和传输文件
传输文件命令 scp file user@192.168.1.1:/home/ file文件传到192.168.1.1/home/目录下 scp -r directory user ...
- 「ZJOI2013」K大数查询
「ZJOI2013」K大数查询 传送门 整体二分,修改的时候用线段树代替树状数组即可. 参考代码: #include <cstdio> #define rg register #defin ...
- 常见Http状态码大全详解
HTTP状态码的分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用.HTTP状态码共分为5种类型: 具体如下: 状态码 内容 详细内容 信息告知 - ...