Hadoop Hive查询速度慢

use*_*868 8 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;
Run Code Online (Sandbox Code Playgroud)

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

Tar*_*riq 15

是的..你误解了Hadoop.Hadoop和Hive也不适合实时的东西.它们最适合离线,批处理等类型的东西.它们根本不是RDBMS的替代品.虽然你可以做一些微调,但"绝对实时"是不可能的.当你运行一个hive查询时会发生很多事情,我认为你并不知道.首先你蜂巢查询被转换成相应的MR工作,随后一些其他的事情一样分割创作,记录一代,一代映射等我绝不会建议的Hadoop(或蜂巢)如果你有实时需求.

你可能想看看Impala的实时需求.