Shark查询比Hive慢的原因分析

通常来,相同条件下,shark查询不会比Hive慢,但有时确实会发生Shark较慢的情况

原因可能如下:

1.内存设置不当或者数据倾斜,导致shark不可用或者大量任务失败或者长时间的Full GC.

2.Hive 在物理执行上有很多优化,但是Shark并没有完全移植过来。比如在写数据表时,合并数据表的小 数据块文件,根据输入文件大小动态改变marped.reduce.task等。

3.SQL语句中调用的UDF直接或者间接的用到了内存锁。Hive执行是完全多进程的,这个锁并不起作用,而Shark执行是基于多线程的,有些内存锁就会造成性能急剧下降。

 

       摘自《Spark 大数据处理技术》

你可能感兴趣的:(Shark查询比Hive慢的原因分析)