1

这个问题可能听起来很烦人,实际上可能与真正的编程没有任何关系。这是我与一位同事进行的一场小型辩论的衍生产品。他一直坚持认为 HIVE 和 PIG 可以被称为独立的“编程模型”,因为当你在这些中编写 MapReduce 作业时,你真的不需要在 MapReduce 中思考——特别是如果你在 HIVE 中编程。从程序员的角度来看,MapReduce 部分是完全抽象的。它完全类似于 SQL。

但我有点不同意,因为用这些语言编写的脚本最终会转换为多个 mapreduce 作业。因此,这些可以称为更高级别的编程语言来为相同的模型进行编程。并且应该从等待处理的底层数据的角度来看待编程模型这个词,而不是程序员。

你怎么看?

4

1 回答 1

2

我将其定义如下:HIVE 和 PIG 处于不同的抽象级别。关闭类比是 SQL 和查询执行计划。它们都解决了数据库查询的同一个问题,但是 SQL 是声明性的并说明应该是什么结果,而查询执行计划指定了实现它的操作。在此示例中,HIVE 是 SQL 和 PIG - 查询执行计划。
我们可以说 HIVE 是声明式的,并且比命令式 PIG 具有更高的抽象级别。因此,从逻辑上讲,HIVE 请求可以转换为 PIG。

于 2011-02-11T17:55:11.037 回答