胜还是平? Pig vs Hive!!!

翻译自:http://www.aptibook.com/Articles/Pig-and-hive-advantages-disadvantages-features

这篇文章讨论了pig和hive的特性。

开发者通常处于选择满足业务需求的技术体系。 在hadoop体系中,pig和hive很相似,并能给出几乎相同的结果,但是那种技术更适合特殊的业务场景了?这里列出了pig和hive的一些对比。

PIG and Hive:

流类型:

Pig是过程式数据流语言。过程式语言通常按照一步一步的执行方式去编写,你能够控制和优化每一步。

Hive更像sql,因此,它是声明式语言,你要指定需要做什么而不是怎么做。Hive依靠自己的优化器,因此hive中优化是比较难的。

易用性:

Pig拥有新而不同的语法,需要额外的时间去学习。

Hive更像sql,开发者会更兴奋的去使用hive.

一般场景:

推荐程序开发者使用Pig。主要原因是它计算高效,当你的查询有大量的join和filter时,pig更合适。

Hive更多的用于分析,它遵循Hadoop和DatawareHouse一些规则。一般更倾向使用Hive产生报表。如果你的查询join和filters比较少可以继续使用Hive,相反,如果查询拥有很多join,Hive的性能也许会降低。

数据类型:

Pig能高效处理结构化和非结构化数据。

Hive能高效的处理结构化数据。

中间层:

Pig使用变量表示数据,当要存储中间结果,可以很容易的用变量存起来并在以后引用。

Hive使用表表示数据,存储中间结果比较困难,需要创建一个表,并从其他的表插入进去。因此,呈现一个复杂的查询时,可能需要几百行的代码。

调试方式:

Pig可以使用本地模式调试。

Hive使用本来模式调试比较复杂并且很费时。

扩展性:

Pig中UDF很容易。

Hive中UDF相对麻烦。

维护性:

Pig比Hive差一点。

Hive比较简单。

持久性:

Pig中可能不会保留变量的值,每一次你都需要重新执行pig代码重新获取变量值。

Hive中即使退出当前会话外部表依然存在,因为外部表依然指向HDFS文件。

开发时间:

pig开发需要更多的时间,更多的依赖对pig的熟悉度。

SQL语句,开发时间很少。

兼容性:

RDBMS与Pig兼容有点复杂,因为pig的语法完全不同。

大部分在RDBMS中的sql可以在Hive中执行,只有少数需要修改。

数据量:

Pig处理大数据很高效。

Hive有时会内存泄露和不靠谱的性能,然而,有一些参数可以进行调整和定位问题。

巨头支持:

Pig:Yahoo,Twitter, LinkedIn

Hive: FaceBook

时间: 2024-10-23 14:00:37

胜还是平? Pig vs Hive!!!的相关文章

大数据 hadoop ------ pig 、hive、Mahout、hbase

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

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

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

pig、hive以及hbase的作用

Pig Pig是一种数据流语言,用来快速轻松的处理巨大的数据.Pig包含两个部分:Pig Interface,Pig Latin.Pig可以非常方便的处理HDFS和HBase的数据,和Hive一样,Pig可以非常高效的处理其需要做的,通过直接操作Pig查询可以节 省大量的劳动和时间. 当你想在你的数据上做一些转换,并且不想编写MapReduce jobs就可以用Pig. Hive 起源于FaceBook,Hive在Hadoop中扮演数据仓库的角色.建立在Hadoop集群的最顶层,对存储在Hado

上海Cloudera 数据分析师培训:Pig、Hive和 Impala

Cloudera 数据分析师培训:Pig.Hive和 Impala 通过 Cloudera 公司的 Apache Hadoop 培训将您的知识提升到一个新的水平. Cloudera 大学提供的为期四天的数据分析培训课程专注于 Apache Pig. Hive 和 Cloudera Impala,将教会您如何将传统的数据分析和商业智能技术应用到大数据领域.Cloudera 为数据专业人员提供了基于 SQL 和其它熟悉的脚本编程语言的工具,用来访问.操作.转换和分析复杂数据集. "通过 Cloude

Hadoop、Pig、Hive、NOSQL 学习资源收集

(一)hadoop 相关安装部署 1.hadoop在windows cygwin下的部署: http://lib.open-open.com/view/1333428291655 http://blog.csdn.net/ruby97/article/details/7423088 http://blog.csdn.net/savechina/article/details/5656937 2.hadoop 伪分布式安装: http://www.thegeekstuff.com/2012/02/

大数据Hadoop生态圈:Pig和Hive

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

Pig和Hive的对比

Pig Pig是一种编程语言,它简化了Hadoop常见的工作任务.Pig可加载数据.表达转换数据以及存储最终结果.Pig内置的操作使得半结构化数据变得有意义(如日志文件).同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换. Hive Hive在Hadoop中扮演数据仓库的角色.Hive添加数据的结构在HDFS(hive superimposes structure on data in HDFS),并允许使用类似于SQL语法进行数据查询.与Pig一样,Hive的核心功能是可扩展的

Pig、Hive、MapReduce 解决分组 Top K 问题(转)

问题: 有如下数据文件 city.txt (id, city, value) cat city.txt 1 wh 5002 bj 6003 wh 1004 sh 4005 wh 2006 bj 1007 sh 2008 bj 3009 sh 900需要按 city 分组聚合,然后从每组数据中取出前两条value最大的记录. 1.这是实际业务中经常会遇到的 group TopK 问题,下面来看看 pig 如何解决: 1 a = load '/data/city.txt'  using PigSto

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

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