从功能性的角度来看,impala与hive的主要区别在于响应时间。
对于同一个查询语句,impala能够更快的给出查询结果。impala是如何实现的呢?
主要是从三个角度来实现。
1.执行计划
impala没有采用mapreduce执行框架,它将执行计划表现为执行计划树,可以分发执行计划到各个impalad,避免了中间的sort和shuffle。
2.数据流
impala采用拉的方式。表现形式,可以看作执行查询语句,不会出现所有的查询结果。在当前查询结果的基础上继续查询时,才能有新的结果出现。
3.内存使用
hive在内存不够时,可使用外存。而impala则会返回错误。

由以上特点来看,impala的缺点也很明显:
1.impala不支持分桶,cluster by, distribute by ,sort by 。本质原因就是因为impala不使用mapreduce
2.impala不适用于数据大批量的处理转化,因为数据过大会返回错误。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐