在Hive中将“hive.exec.parallel”设置为false有什么好处?

时间:2013-08-13 17:51:46

标签: hive

我开始知道hive.exec.parallel在hive中设置为true,即

set hive.exec.parallel=true;

然后查询中的独立任务可以并行运行。

感谢Qubole: hive parallel execution

将此参数设置为false有什么好处吗? 我将在这里进行迭代:显然,只要有可能,您希望并行运行并获得更多吞吐量。为什么有人将此参数设置为false - 是否有任何缺点?

3 个答案:

答案 0 :(得分:3)

这只是一个参数,因为当它被引入时,它不清楚它会有多稳定,所以你应该能够把它关掉。一旦有足够的人尝试它并发现它稳定,默认切换为true: https://issues.apache.org/jira/browse/HIVE-1033

目前没有现实的劣势。

答案 1 :(得分:3)

根据我的经验,唯一的缺点是资源使用。如果您的资源可用资源有限,那么让查询以串行方式运行可能会更好。当查询并行运行时,一个查询可以同时管理多个作业,这可能会使资源集群匮乏。如果你不需要速度并且拥有一个拥有大量工作负载的集群,那么整体运行可能会更好。

答案 2 :(得分:3)

Mayank,这家酒店也有一些明星条件的好处。我的意思是说,当在该数据库上运行多个查询时,Hive具有数据库锁定功能。

  

例如 - 您有一个包含多个阶段的复杂查询   在一个数据库上运行,其中Parallel属性可以增加你的   效率,但它也会创造" LOCK "在DATABASE上可能   停止当时在同一数据库上运行的其他进程   它的执行情况。

我最近遇到过这个问题并通过制作此属性来解决问题" FALSE "。
我希望这个答案可以帮助你理解在什么情况下我们必须把它弄错。