PIG和HIVE可以称为单独的编程模型吗?

时间:2011-02-11 17:23:13

标签: hadoop apache-pig hive

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

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

你有什么看法?

1 个答案:

答案 0 :(得分:2)

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