Hive和Pig的区别

Hive的替代工具中最有名的就是Pig了(http://pig.apache.org) 。Pig是由Yahoo开发完成的,而同时期Fackbook正在开发Hive。因此Pig现在同样也是一个和Hadoop紧密联系的顶级Apache项目,它同样也是一个大数据分析的产品。

Pig hadoop 和 Hive hadoop 有一个相似的目标——它们是减轻编写复杂 java MapReduce 程序的工具。他们可以用 Pig Latin 或 Hive SQL 语言来构建 MapReduce 程序,从而减少了整体开发和测试时间。 但是,他们两者有啥区别,首先看下pig的设计原理。


Hadoop中的Pig

Pig 是一个在 Hadoop 集群上运行的脚本平台,旨在处理和分析大型数据集。Pig常用一种叫做Pig Latin 的语言,类似SQL,来分析查询数据。虽然它与SQL类似,但是语法上有着显著不同。

Pig 的突出之处在于它可以处理各种类型的数据,包括结构化、半结构化和非结构化数据,Pig 都能处理。 

Apache Pig 旨在分析大型数据集,而无需使用耗时且复杂的 Java 代码,基本上10行代码需要java200行代码来完成,Pig 设计的初衷就是为非程序员开发的。


两者区别:

   特征 

Hive Pig

1. 语言

Hive 使用一种称为 HiveQL 的声明性语言

在 Pig Latin 中,使用过程数据流语言

2. 架构

Hive 采用元数据架构与Hadoop关联

在 Pig 中存储数据不需要创建对应元数据

3. 数据处理

Hive 适用用于批处理

Pig 是一种高级数据流语言

4. 分区 

是的 

不。 Pig 不支持分区

5. 网页界面

Hive 有一个 Web 界面

Pig 不支持网页界面

6. 用户规范  

数据分析师是主要用户

程序员和研究人员使用Pig

7. 用于 

报告 

编程

8. 数据类型

Hive 处理结构化数据。不适用于其他类型的数据

Pig 处理结构化、半结构化和非结构化数据

9. 操作 

在集群的服务器端工作

在集群的客户端工作

10.加载速度 

Hive 加载需要时间,但执行速度很快 

Pig 快速加载数据

11. JDBC/ODBC

支持,但有限

不支持

Hive 和 Pig 都是出色的数据分析工具,都有自己的优缺点,但它们确实具有不同的功能和特性。