Hadoop(六)——子项目Pig

前边,讲述了Hadoop的两大支柱HDFS和MapReduce,我们通过将大数据的数据文件放在HDFS上,利用Java编写Map-Reduce,来实现数据的各种分析,并预测一些东西,实现大数据的商业价值,从而也体现了Hadoop价值所在。

但是反观传统系统中,我们都是通过数据库进行数据分析的,例如关系型数据库:Oracle,SQL Server,mysql等,更进一步的通过NO SQL数据库:mongoDB等。对于Hadoop大数据分析,我们如何能够快速而平滑的过度过来呢,以至于不会Java的也能够进行利用hadoop进行数据分析呢。好,Hadoop的子项目为我们解决了这个难题:Pig、Hive。好,这篇博客来看看Pig是如何操作Hadoop的。

一,Pig是什么:

Pig是Yahoo捐献给Apache的一个项目。相当于Hadoop的一种客户端,属于Hadoop的上层衍生架构,将Map-Reduce进行封装。通过Pig客户端用户可以使用Pig latin 一种类似于SQL的面向数据流的语言对HDFS下的数据进行处理。说简单一点Pig就是pig latin数据流语言和Map-Reduce之间的翻译,类似于不同语言直接的接口。所以有人说,Pig包括Pig Interface和Pig latin两部分。好看下边这个图:

二,Pig两种运行模式:

1,本地模式:所有文件和执行过程都在本地执行,一般用于测试程序。开启本地模式:pig -x local

2,MapReduce模式:实际工作模式,Pig将查询翻译为MapReduce作业,然后在Hadoop集群上执行。

三,安装Pig:

1,下载解压:到Apache官网下载Pig,我下载的是:pig-0.15.0.tar.gz ,放到了Hadoop的同路径下(自己定);解压:tar-xvf pig-0.15.0.tar.gz

2,设置环境变量:vi/etc/profile   设定pig的bin路径和Jdk的路径即可。重启即可完成本地模式安装.

Export PATH=$PATH:/home/ljh/pig-0.15.0/bin

Export JAVA_HOME=/usr/jdk1.8.0_51

3,MapReduce模式配置,设置hadoop的相关环境变量,重启,直接使用pig进行MapReduce模式运行。

ExportPATH=$PATH:/home/ljh/pig-0.15.0/bin:/home/ljh/hadoop-1.2.1/bin

ExportJAVA_HOME=/usr/jdk1.8.0_51

ExportPIG_CLASSPATH=/home/ljh/hadoop-1.2.1/conf/

四,grund shell命令:

进入grunt,可以使用类似linux命令进行各种操作,和linux很像的,大家实验一下即可:

例如:ls,cd cat和linux完全一样,只不过是在hadoop的环境下;

copyToLocal将文件复制到本地,copyFromLocal从本地复制文件到hadoop环境;

sh,用来执行操作系统的命令,例如:sh  /usr/jdk/bin/jps。好看下边一个图,不懂的可以查下。

五,pig的数据模型,和传统数据的模型简单对比:


Pig


数据库


Bag



Tuple



Field


属性

注意:pig同一个bag里边的各个tuple可以由不同数量不同类型的field,和传统数据库是不一样的。

六,pig latin(类似与SQL的向数据流的语言):

1,常用语句:

2,对应各种SQL,看此篇博客,很好:http://guoyunsky.iteye.com/blog/1317084

3,更多语法,看此篇博客,很详细:http://blackproof.iteye.com/blog/1791980

pig latin就是一种语言,而且是相对来说比较简单语言,在我们使用的时候,我们现查现用即可。无在乎对数据的各种查询,过滤等。

小结:好,pig的知识相对来说比较少,安装容易,使用方便,需要多学的就是pig latin这个脚本语言的熟练,更多的各种语法,会查会用即可。Pig,hadoop的上层衍生框架,使操作hadoop多了一种方式,现在有了:java的mapreduce,pig的pig latin,当然还有后边的hive的Hiveql,后边会讲到。总而言之,多理解,多看各种资料,多实践……

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 04:23:31

Hadoop(六)——子项目Pig的相关文章

大数据时代之hadoop(六):hadoop 生态圈(pig,hive,hbase,ZooKeeper,Sqoop)

大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四):hadoop 分布式文件系统(HDFS) 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce) hadoop是有apache基金会所开发的分布式系统基础架构,其主要提供了两方面的功能:分布式存储和分布式计算.其中分布式存储是分布式计算的基础,在hadoop的实现里面,提

[转]hadoop,spark,storm,pig,hive,mahout等到底有什么区别和联系?

摘自知乎大神的论述 作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有,转载请联系作者获得授权. 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它比作一个厨房所以需要的各种工具.锅碗瓢盆,各有各的用处,互相之间又有重合.你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮.但是每个工具有自己的特性,虽然奇怪

hadoop生态圈安装详解(hadoop+zookeeper+hbase+pig+hive)

目录 1.hadoop分布式安装 2.zookeeper分布式安装 3.hbase分布式安装 4.pig分布式安装 5.hive客户端安装

大数据Hadoop生态圈:Pig和Hive

前言 Pig最早是雅虎公司的一个基于Hadoop的并行处理架构,后来Yahoo将Pig捐献给Apache的一个项目,由Apache来负责维护,Pig是一个基于 Hadoop的大规模数据分析平台. Pig为复杂的海量数据并行计算提供了一个简 易的操作和编程接口,这一点和FaceBook开源的Hive一样简洁,清晰,易上手! 一.Pig概述 Pig包括 两部分 1:用于描述数据流的语言,称为 Pig Latin (拉丁猪,个人翻译) 2:用于运行PigLatin程序的 执行环境 .一个是 本地 的单

hadoop(六) - ZooKeeper安装与配置

一. ZooKeeper配置 1.使用winscp上传zk安装包 zookeeper-3.4.5.tar.gz 2.解压安装包tar -zxvf zookeeper-3.4.5.tar.gz -C /itcast 3.配置(先在一台节点上配置) 3.1 添加一个zoo.cfg配置文件 进入 $ZOOKEEPER/conf 执行 mv zoo_sample.cfg zoo.cfg 3.2 修改配置文件(zoo.cfg) dataDir=/itcast/zookeeper-3.4.5/data se

Hadoop学习笔记—16.Pig框架学习

一.关于Pig:别以为猪不能干活 1.1 Pig的简介 Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算.Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口. Compare:相比Java的MapReduce API,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构.

Hadoop Pig简介、安装、试用

相比Java的MapReduce api,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构.Pig还提供了一套更强大的数据变换操作,包括在MapReduce中被忽视的连接Join操作. Hadoop版本:2.2.0  Pig版本:0.12.1 Pig介绍 Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoo

Hadoop学习笔记(1):概念和整体架构

Hadoop简介和历史 Hadoop架构体系 Master和Slave节点 数据分析面临的问题和Hadoop思想 由于工作原因,必须学习和深入一下Hadoop,特此记录笔记. 什么是hadoop? Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架.它支持在商品硬件构建的大型集群上运行的应用程序.Hadoop是根据Google公司发表的MapReduce和Google档案系统的论文自行实作而成. Hadoop框架透明地为应用提供可靠性和数据

Hadoop的项目结构

1.Common.是为Hadoop其他子项目提供支持的常用工具.它主要包括FileSystem.RPC和串行化库,并且为运行在云计算环境平台上的软件开发提供所需的API. 2.Avro.是用于数据序列化的系统.提供了丰富的数据结构类型.快速可压缩的二进制数据格式.存储持久性数据的文件集.远程调用RPC的功能和简单的动态语言集成功能. 注意,Avro系统依赖于模式(Schema).数据的读和写是在模式之下完成的. 3.MapReduce.是编程框架.从其自身的命名特点就可以看出,MapReduce