hadoop - pig 和 hive 的区别?为什么两者都有?

标签 hadoop hive apache-pig

<分区>

我的背景 - 在 Hadoop 世界中已经 4 周大了。使用 Cloudera 的 Hadoop VM 涉足 Hive、Pig 和 Hadoop。已阅读 Google 关于 Map-Reduce 和 GFS 的论文 (PDF link)。

我明白了-

  • pig 的语言 Pig Latin 是一种转变 from(适合程序员的思维方式) SQL like declarative 风格的 编程和 Hive 的查询语言密切相关 类似于 SQL。

  • Pig 位于 Hadoop 之上,并在 原则也可以坐在上面 树妖。我可能是错的,但 Hive 是 与 Hadoop 紧密耦合。

  • Pig Latin 和 Hive 命令 编译为 Map 和 Reduce 作业。

我的问题 - 当一个(比如 Pig)可以达到目的时,两者兼顾的目标是什么。仅仅是因为 Pig 被 Yahoo! 宣传了吗?和 Facebook 的 Hive?

最佳答案

看看这个 post来自 Yahoo! 的 Pig 架构师 Alan Gates,比较了何时使用像 Hive 这样的 SQL 而不是 Pig。他提出了一个非常有说服力的案例,说明像 Pig 这样的过程语言(相对于声明式 SQL)的有用性及其对数据流设计者的实用性。

关于hadoop - pig 和 hive 的区别?为什么两者都有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356259/

相关文章:

hadoop - Hortonworks环境中的Pentaho MapReduce作业抛出错误

使用 cygwin 设置 Hadoop 集群

scala - 倾斜的窗口函数和 Hive 源分区?

hadoop - 在配置单元中使用Bucket创建Avro表

hadoop - 无法在 pig 中执行求和运算

apache - Apache Pig提供哪种文件格式?

hadoop - 如何使用 INSERT-SELECT 查询加载具有复杂数据类型的 Hive 表

hadoop - Hive 没有为倾斜的表创建单独的目录

hadoop - 使用 Hadoop 配置 Pig 关系

hadoop - pig 不能使用的场景