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?
当你需要处理非格式化的分布式数据集时,如果想充分利用自己的SQL基础,可以选择Pig。使用Pig你无需自己构建MapReduce任务,有SQL背景的话学习起来比较简单,开发速度也很快。
什么时候用Hive?
有时我们需要收集一段时间的数据来进行分析,而Hive就是分析历史数据绝佳的工具。要注意的是数据必须有一定的结构才能充分发挥Hive的功能。用Hive来进行实时分析可能就不是太理想了,因为它不能达到实时分析的速度要求(实时分析可以用HBase,Facebook用的就是HBase)。
注意:
尽管Pig性能强劲,要使用它开发人员必须掌握SQL之外的新知识,而Hive则与SQL非常相像。尽管Hive查询语言HQL的命令有所局限,它还是取得了一定的成功。Hive为MapReduce提供了优秀的开源实现,它在分布式数据处理的同时避免了SQL对于数据存储的局限。
所以现在使用Hive比较多,基本上很少用Pig!!!
Pig和Hive的对比的更多相关文章
- [转]hadoop,spark,storm,pig,hive,mahout等到底有什么区别和联系?
摘自知乎大神的论述 作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有,转载请联系作 ...
- 大数据Hadoop生态圈:Pig和Hive
前言 Pig最早是雅虎公司的一个基于Hadoop的并行处理架构,后来Yahoo将Pig捐献给Apache的一个项目,由Apache来负责维护,Pig是一个基于 Hadoop的大规模数据分析平台. Pi ...
- 大数据时代之hadoop(六):hadoop 生态圈(pig,hive,hbase,ZooKeeper,Sqoop)
hadoop是有apache基金会所开发的分布式系统基础架构,其主要提供了两方面的功能:分布式存储和分布式计算. 其中分布式存储是分布式计算的基础,在hadoop的实现里面,提供了分布式存储的接口,并 ...
- pig、hive以及hbase的作用
Pig Pig是一种数据流语言,用来快速轻松的处理巨大的数据.Pig包含两个部分:Pig Interface,Pig Latin.Pig可以非常方便的处理HDFS和HBase的数据,和Hive一样,P ...
- [转]Pig与Hive 概念性区别
Pig是一种编程语言,它简化了Hadoop常见的工作任务.Pig可加载数据.表达转换数据以及存储最终结果.Pig内置的操作使得半结构化数据变得有意义(如日志文件).同时Pig可扩展使用Java中添加的 ...
- Pig与Hive的区别
Language 在Hive中可以执行 插入/删除 等操作,但是Pig中我没有发现有可以 插入 数据的方法,请允许我暂且认为这是最大的不同点吧. Schemas Hive中至少还有一个“表”的概念, ...
- Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集
(一)hadoop 相关安装部署 1.hadoop在windows cygwin下的部署: http://lib.open-open.com/view/1333428291655 http://blo ...
- Hadoop、Pig、Hive、NOSQL 学习资源收集
转自:http://www.cnblogs.com/zzjhn/p/3855566.html (一)hadoop 相关安装部署 1.hadoop在windows cygwin下的部署: http:// ...
- 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 100 ...
随机推荐
- vue自学入门-2(vue创建项目)
本人也是刚学习VUE,边找资料,边学习,边给大家分享.1.创建项目 2.启动项目 3.注意上面和下面全部用cnpm
- 基于802.11Fuzz技术的研究
转自安全客 关于无线的Fuzz最开始接触了解时,国内基本毛线都搜不到.经过几个月的资料搜集和学习,将大约全网的fuzz资料整理翻译分析并读懂写下,就为填补国内空白,也希望无线爱好者能多多交流. 在各个 ...
- js 碰撞 + 重力 运动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- linq to xml 简单的增、删、改、查、保存xml文件操作
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- Java SE之Java中堆内存和栈内存[转/摘]
[转/摘]1-3Java中堆内存和栈内存 注解:内存(Memory)即 内存储器,主存,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器(辅存)交换的数据. Java中把内存分为两种:栈 ...
- luogu P1072 $Hankson$ 的趣味题
这里提供两种做法 sol 1 考虑两个数\(A,B\)和\(C=gcd(A,B),D=lcm(A,B)\)的关系 设\(S=\{2,3,5...P_n\}\)为质数集合\(p_{x,i}\)表示\(x ...
- Servlet3.0的注解自定义原生Servlet实战
Servlet3.0的注解自定义原生Servlet实战 讲解:使用 Servlet3.0的注解自定义原生Servlet和Listener 自定义原生Servlet package net.xdclas ...
- java 多线程和并行程序设计
多线程使得程序中的多个任务可以同时执行 在一个程序中允许同时运行多个任务.在许多程序设计语言中,多线程都是通过调用依赖系统的过程或函数来实现的 为什么需要多线程?多个线程如何在单处理器系统中同时运行? ...
- .Net Core中使用RabbitMQ
(1).引入依赖 RabbitMQ.Client (2).编写发布者代码 var connectionFactory = new ConnectionFactory() { HostName=&quo ...
- 超图(Hypergraph)
原文地址:http://blog.csdn.net/qrlhl/article/details/48413117 超图(Hypergraph)是什么 简单的来说,对于我们熟悉的图而言,它的一个边(ed ...