`
lt200819
  • 浏览: 188932 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Pig 和 Hive的比较

 
阅读更多

Pig Latin:数据流编程语言

一个Pig Latin程序是相对于输入的一步步操作。其中每一步都是对数据的一个简单的变换。

用Pig Latin编程更像在RDBMS中“查询规划器”(query planner)这一层对数据进行操作,查询规划器决定了如何将描述型语句转化为一系列系统化执行的步骤。

Pig对它所处理的数据要求则宽松得多;可以在运行时定义模式,而且这是可选的。本质上,Pig可以在任何来源的元组上进行操作。(当然数据源必须支持并行的读操作,例如存放在多个文件中)。它使用UDF(User define feature)从原始格式中读取元组。最常用的输入格式使用制表符分隔的字段组成的文本文件。Pig为这种输入提供了内置加载函数。和传统的数据库不同,Pig并不提供专门的数据导入过程将数据加载到RDBMS。在第一步处理中,数据是从文件系统(通常是HDFS中加载的)。

Pig对复杂、嵌套数据结构的支持也使其不同于处理平面数据类型的SQL。Pig的语言能和UDF及流式操作紧密集成。它的这一能力及其嵌套数据结构,使Pig Latin比大多数SQL的变种具有更强的定制能力。

不支持在线和低时延查询,不支持事务和索引。

不支持随机读和随机写。

和MapReduce一样,所有的写都是批量的,流式的写操作。

Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java API可大幅减少开发量。

 

SQL:描述性编程语言

SQL是一个约束的集合,这些约束结合在一起,定义了输出。

RDBMS把数据存储在严格定义了模式的表内。

 

 

HIVE

HIVE介于Pig和传统的RDBMS之间,和Pig一样,Hive也被设计为HDFS作为存储,但是他们之间有着显著的区别。Hive的查询语言HiveQL,是基于SQL的。任何熟悉SQL的人都可以轻松使用HiveQL写查询。和RDBMS相同。Hive要求所有数据必须存储在表中,表必须有模式,而模式由Hive进行管理。但是Hive允许为预先存在于HDFS的数据关联一个模式。所以,数据的加载步骤是可选的。

和Pig一样,Hive也不支持低时延查询。

 

------------------------------------------------------------------------------------

以下转自http://book.douban.com/annotation/17153277

 

对于开发人员,直接使用Java APIs可能是乏味或容易出错的,同时也限制了Java程序员在Hadoop上编程的运用灵活性。于是Hadoop提供了两个解决方案,使得Hadoop编程变得更加容易。
 Pig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。
 Hive在Hadoop中扮演数据仓库的角色。Hive添加数据的结构在HDFS(hive superimposes structure on data in HDFS),并允许使用类似于SQL语法进行数据查询。与Pig一样,Hive的核心功能是可扩展的。
 Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使其成为Hadoop与其他BI工具结合的理想交集。Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。
 本质上说说Pig与Hive。
 经过Pig Latin的转换后变成了一道MapReduce的作业,通过MapReduce多个线程,进程或者独立系统并行执行处理的结果集进行分类和归纳。Map() 和 Reduce() 两个函数会并行运行,即使不是在同一的系统的同一时刻也在同时运行一套任务,当所有的处理都完成之后,结果将被排序,格式化,并且保存到一个文件。Pig利用MapReduce将计算分成两个阶段,第一个阶段分解成为小块并且分布到每一个存储数据的节点上进行执行,对计算的压力进行分散,第二个阶段聚合第一个阶段执行的这些结果,这样可以达到非常高的吞吐量,通过不多的代码和工作量就能够驱动上千台机器并行计算,充分的利用计算机的资源,打消运行中的瓶颈。
 也就是说,Pig最大的作用就是对mapreduce算法(框架)实现了一套shell脚本 ,类似我们通常熟悉的SQL语句,在Pig中称之为Pig Latin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),Pig也可以由用户自定义一些函数对数据集进行操作,也就是传说中的UDF(user-defined functions)。
 结论性的阅读感觉是:Pig用来写一些即时脚本吧,比如领导问你要份数据,半个小时要出来之类;Hive嘛,就是一个产品经理过来,问这个啥回事?于是你Hive一下,一个简洁的类SQL语句...Done!

   也可以封装pig脚本

 

分享到:
评论

相关推荐

    pig-hive编程指南

    三、Pig与Hive的比较 1. 面向对象:Pig更适合处理复杂的数据结构,如多维数据;而Hive更适合处理结构化的表格数据。 2. 性能:Pig通常比Hive更高效,因为它的操作直接映射到MapReduce任务,减少了数据转换的开销。 3...

    Hadoop、HBase、Hive、Pig、Zookeeper资料整理

    标题 "Hadoop、HBase、Hive、Pig、Zookeeper资料整理" 涵盖了大数据处理领域中几个核心的开源项目,这些项目在分布式计算、数据存储和管理方面发挥着重要作用。以下是对这些技术的详细介绍: 1. **Hadoop**:Hadoop...

    Pig.Hive.Hcatalog.分享

    Pig Hive 对比分享, Pig HCatalog 元数据组合使用

    HADOOP 系统之hadoop pig hive 整合版

    在IT行业中,Hadoop、Hive和Pig是大数据处理领域的三大重要工具,它们共同构建了一个高效、可扩展的数据处理框架。以下是对这些技术的详细解释: **Hadoop** 是一个开源的分布式计算框架,由Apache软件基金会开发。...

    HadoopMapReduce:学习 Apache(大)数据库框架 - Hadoop、Pig、Hive、Hbase

    Average_Flight_Delay_Per_Month :计算给定日期范围内(Plain Map Reduce vs Apache Pig)一对出发地和目的地之间所有两航段航班的平均延迟。 Airline_Monthly_Delay_Pattern :计算每个航空公司的每月延误模式...

    计算机专业基础理论电子书合集12----hive,pig

    在计算机科学领域,尤其是大数据处理方面,Hive和Pig是两个非常重要的工具,它们都是构建在Hadoop生态系统上的数据处理框架。这个压缩包文件包含了关于Hive和Pig的权威指南和其他相关资料,旨在帮助学习者深入理解这...

    mapreduce方式入库hbase hive hdfs

    mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载

    课时5 Hbase与Hive的比较关系1

    在大数据处理领域,Hadoop生态系统...Hive和Pig都支持与HBase的集成,为HBase提供高层语言支持,使得在HBase上的数据统计处理更为简便。理解这些工具的特性并根据实际需求选择合适的工具,是高效利用Hadoop生态的关键。

    Hadoop大数据处理讲义-C10. Hive_Pig.pdf

    Hive_Pig.pdf】主要涵盖了两个重要的大数据处理工具——Hive和Pig,它们都是建立在Hadoop生态系统之上,用于处理和分析大规模数据的框架。 ### Hive Hive是由Facebook开发的数据仓库系统,它允许用户使用类似于SQL...

    java8集合源码-Pig-Hive-Intro:用于比较两者可用性的小AGH项目

    Pig、Hive 和 Hadoop,提供对通过它们运行 Map-Reduce 作业的基本了解。 除了我希望说明比较猪VERSUS Hadoop是相当浅,与每一个经过realease的方式既由合作越来越多。 但是,如果我们要提供一个浅薄的区别,它将遵循...

    大数据 hive 实战数据

    此外,Hive还支持与其他大数据组件如Pig、Spark、Impala等集成,以提供更高效的数据处理能力。 总结来说,这个实战数据集为我们提供了研究大数据分析和数据仓库应用的宝贵资源。通过对`video`和`user`数据的Hive...

    Hadoop和hive大数据面试题

    在大数据领域,Hadoop和Hive是两个至关重要的技术组件,它们在处理大规模数据存储和分析方面发挥着关键作用。本篇文章将详细探讨Hadoop和Hive的相关面试知识点,帮助求职者更好地准备大数据领域的面试。 首先,我们...

    Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie

    在大数据处理领域,Hive和Oozie是两个至关重要的工具。Hive是基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL)查询和管理大规模数据集。而Oozie是Hadoop生态系统中的工作流调度系统,用于管理Hadoop作业的生命...

    hive-2.1.0.rar

    Hive可以很好地与Hadoop生态系统中的其他组件如HDFS、HBase、Oozie、Pig等协同工作,提供了一站式的数据分析解决方案。 8. **安全性**: Hive 2.1.0版本加强了安全性,支持Hadoop的Sentry和Kerberos认证,可以...

    Hive权威指南

    7. **Hive与外部系统集成**:探讨如何与Pig、HBase、Impala等其他Hadoop组件协同工作,实现更复杂的数据处理流程。 8. **安全与权限**:讲解Hive的安全机制,如Hive Metastore的权限控制、Hive SQL标准的ACID特性和...

    apache-hive-2.3.3-bin.tar.gz

    5. **Hive HCatalog**:作为元数据管理层,允许不同工具(如Pig、Spark SQL)共享Hive的元数据,促进了数据的互操作性。 6. **HQL**:Hive的查询语言,语法类似于SQL,但有其特有的一些概念,如分区、桶、动态分区...

    hadoop_hbase_pig

    标题 "hadoop_hbase_pig" 暗示了这个压缩包包含与Hadoop、HBase和Pig相关的技术知识。Hadoop是一个开源框架,主要用于处理和存储大量数据,而HBase是建立在Hadoop之上的分布式列式数据库,Pig则是一个用于大数据分析...

Global site tag (gtag.js) - Google Analytics