gpt4 book ai didi

sql - Hadoop:为什么即使在很小的 table 上,Hive的工作速度仍然如此缓慢?

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

我从Scala使用JDBC从Hive获取数据。在Hive中,我有一个简单的表,其中包含20行,格式如下:

user_id,movie_title,评分,日期

要按电影对用户进行分组,我做了3个嵌套的选择请求:

1) select distinct user_id  
2) for each user_id:
select distinct movie_title //select all movies that user saw
3) for each movie_title:
select distinct user_id //select all users who saw this movie

在具有20行的本地Hive表上,这些嵌套查询工作26分钟!一分钟后,Hive返回第一个 user_id!问题:

1)为什么Hive这么慢?

2)有什么方法可以优化3个嵌套选择?

最佳答案

Hive使用MapReduce框架来处理查询。您运行的每个MapReduce作业都有相当数量的固定开销。您的每个查询(由于嵌套,这是一个相当大的数目)将不得不启动MapReduce作业,而无论您拥有多少数据,这都会花费时间。

较新版本的Hive响应速度更快,但对于此类选择仍然不理想。

最好的选择是尝试使用group by或类似的方法来减少查询的数量。

关于sql - Hadoop:为什么即使在很小的 table 上,Hive的工作速度仍然如此缓慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303591/

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