Hadoop学习系列笔记(五):关于Pig

Pig为大型数据集的处理提供了更好层次的抽象。PigMapReduce提供了更丰富的数据结构,这些数据结构往往都是多值嵌套的,Pig还提供了一套更强大的数据变换操作。

Pig包括两部分:

(1)用于描述数据流的语言,Pig Latin

(2)用于运行Pig Latin程序的执行环境。当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境。

Pig Latin程序由一系列“操作”或“变换”组成。每个操作或变换对输入进行数据处理,并产生输出结果。

Pig是一种探索大规模数据集的脚本语言MapReduce的一个缺点是开发周期太长,写mapperreducer,对代码进行编译和打包,提交作业,获取结构,这整个过程非常耗时。Pig的诱人之处在于仅用控制台上的五六行Pig Latin代码就能够处理TB级的数据。

PigMapReduce一样为数据批处理而设计。一般情况下使用Pig Latin来写查询更能节省时间。

Pig有两种执行类型或称为模式:本地模式和MapReduce模式。

本地模式下,Pig运行在单个JVM中,访问本地文件系统。该模式只适合用于处理小规模数据集或试用Pig时。

MapReduce模式下,Pig查询翻译为MapReduce作业,然后在Hadoop集群上执行,试用处理大规模数据集

三种执行Pig程序的方法:脚本、Grunt、嵌入式方法。

看上去Pig LatinSQL很相似,但两种语言之间,以及Pig和关系型数据库管理系统(RDBMS)之间,有几个方面是不同的。

Pig Latin是一种数据流编程语言,而SQL是一种声明式编程语言。即一个Pig Latin程序是一组针对输入关系一步步操作,其中每一步操作都是对数据简单变换。相反,SQL语句是一个约束的集合,这些约束结合在一起定义了输出RDBMS把数据存储在严格定义了模式表内Pig对它所处理的数据要求则宽松得多:可以在运行时定义模式,是可选的。Pig对复杂、嵌套数据结构的支持也使其不同于只能处理平面数据类型的SQLRDBMS具有一些支持在线和低延迟查询的特性,如事务和索引。Pig不支持随机读和几十毫秒级别的查询,也不支持针对小部分数据的随机写,和MapReduce一样,所有写都是批处理的、流式的写操作。

Hive介于Pig和传统的RDBMS之间。和Pig一样,Hive也被设计为用HDFS作为存储。但Hive的查询语言HiveQL是基于SQL的。和RDBMS相同,Hive要求所有数据必须存储在表中,而表必须有模式,且模式由Hive进行管理。和Pig一样,Hive也不支持低延迟查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值