一、前提

  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. StringBuilder为什么线程不安全(面试必问)

    文章转载自:https://juejin.im/post/5d6228046fb9a06add4e37fe 作者:千山qianshan 1.引言 周五去面试又被面试的一个问题问哑巴了 面试官:Stri ...

  2. Eth合约攻击续

    合同代表一个非常简单的游戏:谁给它发送了比当前奖金还大的数量的以太,就成为新的国王.在这样的事件中,被推翻的国王获得了新的奖金,但是如果你提交的话那么合约就会回退,让level重新成为国王,而我们的目 ...

  3. 你需要知道的 JavaScript 类(class)的这些知识

    作者: Dmitri Pavlutin译者:前端小智来源:dmitripavlutin 点赞再看,养成习惯 本文 GitHub https://github.com/qq44924588... 上已经 ...

  4. Spark实验汇总(七个实验相结合)

    日期:2020.01.20 博客期:128 星期一 一.环境搭建篇 1.安装虚拟机应用程序 VMware Workstation Pro [编写日期:2020-01-20] 去到 官网 下载 VMwa ...

  5. 生成资源文件时候,可以动态替换为maven属性

    1.maven管理的文件或者是maven插件处理的文件中   可以引用maven属性,在编译输出时候,可以替换   ${project.build.testOutputDirectory}   在资源 ...

  6. Python字符串(一)

    一.get char 1.获取单个字符 字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符串中的位置.下标从0开始依次增加:0对应的是第一个字符:也可以从从-1开始依次减小,-1代表最后一 ...

  7. 如何反编译MIPS64伪代码?用Ghidra

    在分析固件时,碰到MIPS64架构的程序会很头疼,虽然用IDA能够反编译出汇编代码,但是没办法F5一键反编译成伪代码,如果单看汇编,看久了脑壳痛. 后来Google到了一个好工具,Ghidra,发音和 ...

  8. 引用类型--Function类型(函数声明与函数表达式、arguments.callee、caller、apply、call、bind)

    在ECMAScript中函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定 ...

  9. 45 孩子们的游戏(圆圈中最后剩下的数) + list操作总结+ for_each多记忆容易忘记

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...

  10. HDU 5045 状压DP 上海网赛

    比赛的时候想的是把n个n个的题目进行状压 但这样不能讲究顺序,当时精神面貌也不好,真是挫死了 其实此题的另一个角度就是一个n个数的排列,如果我对n个人进行状压,外面套一个按题目循序渐进的大循环,那么, ...