我在hive中的查询不是并行运行的(40个核心中只有一个是100%),我不明白为什么。我已经设定了选项 hive.exec.parallel
真实的和 hive.exec.parallel.thread.number
到30,但这不符合htop。这使得我的查询非常长(创建一个包含2000000个条目的表需要25分钟)
我查了一下
SELECT COUNT(*) FROM mybigtable;
或
CREATE TABLE t STORED AS ORC
TBLPROPERTIES ("immutable"="true","orc.compress"="SNAPPY")
as SELECT x, y, z FROM tt;
或
SELECT * FROM a JOIN b ON a.x=b.y;
这些查询可以由块并行完成,但它们不是这样做的。我错过什么了吗?还是正常?
1条答案
按热度按时间jutyujz01#
此属性hive.exec.parallel的工作方式有点不同。此属性在同一查询中运行并行查询,如下所示:
在这里,第一个select和第二个select语句是不相关的,因此它们可以并行运行。这种情况下,此属性很有用。
可以通过使用线程运行这些查询来实现您的请求,每个线程打开一个jdbc连接。
希望能有帮助。。。!!!