performance - Hadoop Hive 慢查询

标签 performance hadoop hive

我是 Hadoop Hive 的新手,我正在开发一个报告解决方案。问题是查询性能真的很慢(hive 0.10,hbase 0.94,hadoop 1.1.1)。其中一个查询是:

select a.*, b.country, b.city from p_country_town_hotel b 
    inner join p_hotel_rev_agg_period a  on
    (a.key.hotel = b.hotel) where b.hotel = 'AdriaPraha' and a.min_date < '20130701'
    order by a.min_date desc  
    limit 10;

这需要相当长的时间(50 秒)。我知道我知道,连接是在字符串字段上而不是在整数上,但数据集并不大(cca 3300 和 100000 条记录)。我尝试了有关此 SQL 的提示,但结果并没有更快。 MS SQL Server 上的相同查询持续 1 秒。此外,表中的一个简单计数 (*) 持续 7-8 秒,这令人震惊(该表有 3300 条记录)。我真的不知道是什么问题?有什么想法还是我误解了 Hadoop?

最佳答案

是的..您误解了 Hadoop。 Hadoop 和 Hive 也不适合实时的东西。它们最适合离线、批处理之类的东西。它们根本不是 RDBMS 的替代品。虽然你可以做一些微调,但“绝对实时”是不可能的。当您运行配置单元查询时,后台会发生很多事情,我认为您并非没有意识到。首先,您的 Hive 查询会转换为相应的 MR 作业,然后是其他一些事情,例如拆分创建、记录生成、映射器生成等。如果您有实时需求,我绝不会建议使用 Hadoop(或 Hive)。

您可能想看看 Impala满足您的实时需求。

关于performance - Hadoop Hive 慢查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16359337/

相关文章:

hadoop - 使用 HCatalog 对 Hive 表进行 MapReduce

hadoop - 如何插入配置单元表,按从临时表中读取的日期划分?

time.Ticker 的性能

php - PHP 中每个文件只有一个或多个函数?

javascript - jQuery.grep 与 Array.filter 的性能对比

hadoop - 在Hadoop中处理更新的记录

hadoop - 无法打开别名-Pig的迭代器

json - 在配置单元中配置对象时出错

hadoop - hive 表中 count(*) 的错误结果

performance - 保存左移(SHL)中偏移的位