此文章是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-576877.aspx