一、前提

  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安装配置及实例的更多相关文章

  1. pig安装配置

    pig的安装配置很简单,只需要配置一下环境变量和指向hadoop conf的环境变量就行了 1.上传 2.解压 3.配置环境变量 Pig工作模式 本地模式:只需要配置PATH环境变量${PIG_HOM ...

  2. ActiveMQ安装配置及实例

    本文可作为吴水成老师,dubbo课程第21节的学习笔记. ActiveMQ的介绍及功能 参考百度 ActiveMQ的下载 https://activemq.apache.org/activemq-51 ...

  3. Kali Linux下安装配置ProFTPD实例

    1.安装ProFTPD 在ftp://ftp.proftpd.org/下能够找到官方公布的各个ProFTPD版本号,本人使用ftp://ftp.proftpd.org/historic/source/ ...

  4. CentOS7 MySql数据库安装配置(单实例)

    一. 安装mysql-server 官网下载安装 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # ...

  5. OCM_第十六天课程:Section7 —》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  6. 安装Nginx+Lua+OpenResty开发环境配置全过程实例

    安装Nginx+Lua+OpenResty开发环境配置全过程实例 OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用. ...

  7. 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 重点: 实现多级子目录的压缩, ...

  8. 每天收获一点点------Hadoop基本介绍与安装配置

    一.Hadoop的发展历史 说到Hadoop的起源,不得不说到一个传奇的IT公司—全球IT技术的引领者Google.Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的G ...

  9. Winform下CefSharp的引用、配置、实例与报错排除(源码)

    Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...

随机推荐

  1. 九 AOP的概述

    AOP : 面向切面编程,解决OOP(面向对象编程)开发遇到的问题,是oop的延伸和扩展 AOP的优点:不修改源码的情况下,对程序进行校验,日志记录,性能控制,事务控制 SpringAOP底层的实现原 ...

  2. docker-compose 快速部署持续集成测试环境 Gitlab+Harbor+Jenkins pipeline 实现 tag run docker Images

    环境 测试部署主机IP:192.168.1.1 Jenkins主机IP:192.168.1.2 Harbor主机IP:192.168.1.3 Gitlab主机IP:192.168.0.10 系统信息: ...

  3. Java基础 -5.2

    方法重载 当方法名称相同,参数的类型或者个数不同的时候 就会称为方法重载. public static void main(String[] args) { System.out.println(ad ...

  4. C++11通过拷贝构造器拷贝const字段(待解决)

    问题梗概如标题所述. 在今天实现Token类的时候,遇到的问题. 我希望将Token类设定为immutable属性的,这样实现的方式是将这个类内的所有字段均设置为const型,同时每个字段均为publ ...

  5. matplotlib 柱状图 Bar Chart 样例及参数

    def bar_chart_generator():     l = [1,2,3,4,5]     h = [20, 14, 38, 27, 9]     w = [0.1, 0.2, 0.3, 0 ...

  6. Codeforces1301D

    其实感觉这道题在D简单了(但我都没做到这一题,路径最多的方式只有一种,将所有的边都走一遍,从第一行开始,向右走到头,然后向左回来,向下一格,向右走到头,然后上下左重复直到第一列,如此重复直到最后一行, ...

  7. Node.js npm基础安装配置&创建第一个VUE项目

    使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...

  8. wxPython--学习笔记

    wxPython程序由两个必要的对象组成,应用对象APP和顶级窗口对象Frame 应用程序对象APP管理主事件循环MainLoop() 顶级窗口对象Frame管理数据,控制并呈现给用户 先看一段最简单 ...

  9. 八 SpringMVC文件上传,必须设置表单提交为post

    1 修改Tomcat配置,本地目录映射 那么在server.xml中体现为: 测试一下是否设置成功: 2 引入jia包   3 配置多媒体解析器 3 jsp开启图片上传 4 Controller层设置 ...

  10. _CrtIsValidHeapPointer(pUserData)

    程序遇到如题的运行时报错,参考下面这段文字,采取将自定义类的对象定义改为new方式生成后问题解决. !!Expression: _CrtIsValidHeapPointer(pUserData) vo ...