我一直在使用hive在我的工作,当我运行这样的选择
"Select * from TABLENAME"
hive执行mapreduce作业,当我运行
"Select * from TABLENAME LIMIT X" independently of x.
hive不执行mapreduce任务
我使用hive 1.2.1, HDP 2.3.0, hue 2.6.1和hadoop 2.7.1
对这个事实有什么想法吗?
谢谢!
Select * from table;
不需要map和reduce。这里没有过滤器(where语句)或聚合函数。这个查询只是从HDFS读取数据。
这是hive的基本任务。它只是一个抽象的地图减少工作。前facebook工程师不得不编写数百个用于特殊分析的map-reduce任务,而map-reduce任务有点让人头疼。所以他们用sql语言将其抽象出来,并将其翻译成map-reduce任务。
小猪(雅虎)也是如此。
p。S一些查询是如此简单,他们不翻译成映射减少作业,但在一个节点上本地执行,据我所知