此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


HIVE与PIG对比

  • 时间:
  • 浏览:
  • 来源:互联网

什么是HIVE

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。hive参考手册

什么是pig

pig是在HDFS和MapReduce之上的数据流处理语言(脚本语言),它将数据流处理翻译成多个MapReduce函数,提供更高层次的抽象将程序员从具体的编程中解放出来。pig参考手册


不同的方式做同样的事情(Two ways of doing same thing)

1、都是使用高层次的语言生成MapReduce任务

2、都使Users不用了解MapReduce与HDFS的细节


基本信息对比























 

HIVE

Pig

开发者

Facebook

Yahoo!

语言

HiveQL

Pig Latin

语言类型

类似SQL查询语言

Select * from mytable

数据流处理语言,由一系列的operation和transformation组成。

每个操作或变换对输入进行数据处理,然后产生输出结果

A = LOAD ‘mydata’ AS (Col1:chararray, Col2:int)

B = GROUP A BY (Col2)  

Dump B

用户

在Analysts中更流行

在Programmer与Researcher中更流行

使用模式

Analysts:生成日常报表

Programmer:写复杂的数据管道

Researcher:特设分析(ad-hoc),例如机器学习

发展方向

Hive朝着数据仓库的方向发展,

使用者要求与其他系统更好的结合(O/JDBC)

Pig朝着语言的方向发展,使用者要求有更好的开发环境

例如调试器,编辑器


细节对比

































特性

HIVE

Pig

模式/类型(Schemas/Types)

支持(显示的)

支持(隐式的)

分区(partitions)

支持

不支持

用户自定义函数(UDF)

支持(Java)

支持(Java)

自定义序列化(Serializer/Deserializer)

支持

支持

直接访问DFS

支持(隐式的)

支持(显式的)

Join/Order/Sort操作

支持

支持

Shell命令

支持

支持

网络接口

支持

不支持

JDBC/ODBC

支持(有限的)

不支持


1、两者均不支持事物与索引,全盘扫描是常态

2、两者均不支持随机读与实时查询


总结

直接使用Hadoop的Java APIs实现MapReduce任务是乏味和容易出错的,同时也限制了编程的灵活性。于是Hadoop提供了两个解决方案使得编程变得更加容易,即Hive与Pig。

Hive主要用于静态的结构以及需要经常分析的工作,并且Hive与SQL相似促使其成为Hadoop与其他BI(商业智能)工具结合的理想交集。

Pig相比Hive相对轻量,Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。 

本文链接http://element-ui.cn/news/show-576738.aspx