我在Spark(执行引擎)上设置了Hive(v2.3.4)。
这将启动Spark应用/执行程序:
Point
为什么不启动Spark应用/执行程序:
select count(*) from s.t where h_code = 'KGD78' and h_no = '265'
答案 0 :(得分:1)
这是第二种情况,这是由于不太知名的“ hive.fetch.task.conversion” 参数引起的。
根据设置方式,即使配置了过滤器(即where子句),Hive仍可以启动单个“获取任务” ,而不是Map Reduce作业。
如果选择*或未分区的列,它将启动获取任务,而不是MR-job-单线程。单线程并不总是一件好事。 count(*)应该说明一切,您可能需要进行大量处理,第二种情况就像光标一样。
您可以在hive-site.xml中将参数更改为“最小”或“无”,以消除这种类型的处理。
发现得很好