我开始知道hive.exec.parallel在hive中设置为true,即
set hive.exec.parallel=true;
然后查询中的独立任务可以并行运行。
感谢Qubole:
将此参数设置为false有什么好处吗? 我将在这里进行迭代:显然,只要有可能,您希望并行运行并获得更多吞吐量。为什么有人将此参数设置为false - 是否有任何缺点?
答案 0 :(得分:3)
这只是一个参数,因为当它被引入时,它不清楚它会有多稳定,所以你应该能够把它关掉。一旦有足够的人尝试它并发现它稳定,默认切换为true: https://issues.apache.org/jira/browse/HIVE-1033
目前没有现实的劣势。
答案 1 :(得分:3)
根据我的经验,唯一的缺点是资源使用。如果您的资源可用资源有限,那么让查询以串行方式运行可能会更好。当查询并行运行时,一个查询可以同时管理多个作业,这可能会使资源集群匮乏。如果你不需要速度并且拥有一个拥有大量工作负载的集群,那么整体运行可能会更好。
答案 2 :(得分:3)
Mayank,这家酒店也有一些明星条件的好处。我的意思是说,当在该数据库上运行多个查询时,Hive具有数据库锁定功能。
例如 - 您有一个包含多个阶段的复杂查询 在一个数据库上运行,其中Parallel属性可以增加你的 效率,但它也会创造" LOCK "在DATABASE上可能 停止当时在同一数据库上运行的其他进程 它的执行情况。
我最近遇到过这个问题并通过制作此属性来解决问题" FALSE "。
我希望这个答案可以帮助你理解在什么情况下我们必须把它弄错。