gpt4 book ai didi

hadoop - hive 无限循环?

转载 作者:行者123 更新时间:2023-12-02 21:46:51 26 4
gpt4 key购买 nike

因此,我尝试在hive上进行一些测试查询,并且当我将两个具有100k行的表联接在一起时,我运行的查询工作得很好,但是当我尝试两个具有20万行的表时完全中断了

本质上,控制台卡在特定数量上(在这种情况下,映射0%减少了0%),并不断重复声明,而在映射器中,控制台开始转发荒谬的行数。我一生无法弄清这里出了什么问题。如果可以的话,我将不胜感激!

这是查询

SELECT /*+MapJoin(female_users)*/ male_users1m.id FROM male_users1m JOIN female_users1m ON (male_users1m.attractiveness = female_users1m.attractiveness);

id是一个bigint,吸引力是一个tinyint,但是我尝试使用其他变量进行此操作,并且似乎遇到了相同的问题。
2014-06-24 17:46:25,401 INFO org.apache.hadoop.hive.ql.exec.MapJoinOperator: 1 forwarding 118000000 rows
2014-06-24 17:46:25,401 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 2 forwarding 118000000 rows
2014-06-24 17:46:27,775 INFO org.apache.hadoop.hive.ql.exec.MapJoinOperator: 1 forwarding 119000000 rows
2014-06-24 17:46:27,775 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 2 forwarding 119000000 rows
2014-06-24 17:46:30,317 INFO org.apache.hadoop.hive.ql.exec.MapJoinOperator: 1 forwarding 120000000 rows
2014-06-24 17:46:30,317 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 2 forwarding 120000000 rows
2014-06-24 17:46:33,341 INFO org.apache.hadoop.hive.ql.exec.MapJoinOperator: 1 forwarding 121000000 rows
2014-06-24 17:46:33,341 INFO org.apache.hadoop.hive.ql.exec.SelectOperator: 2 forwarding 121000000 rows

最佳答案

由于您正在执行 map 侧连接-映射器作为输入进入表,并且每个映射器完全读取另一个表。

现在,对于每个记录中的10万条记录,这可能会起作用,但是我认为,在20万条记录中,基于每个记录的大小,JVM可能会遇到内存问题。

您可以尝试增加堆分配。

理想情况下,在您的方案中使用 map 侧连接是不正确的。仅当您知道一个表很小并且具有固定数量的记录时才使用它。一旦在较大的表上使用 map 侧连接,您将面临性能问题。

关于hadoop - hive 无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com