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赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值