- SparkSQL-Thriftserver所有结果全部内存快是快,但昰不能满足查询大量数据的需求如果查询几千万的数据,SparkSQL是搞不定的而hive tez-on-spark除了计算用spark其他逻辑都是hive tez的,返回的结果会先写hdfs再慢慢返回給客户端。
- SparkSQL由于基于内存再一些调度方面做了优化。如[limit]: hive tez是死算sparksql递增数据量的一次次的试。sparksql可以这么做的毕竟算好的数据在内存里面放着。
hive tez和sparksql的理念不同hive tez的存储是HDFS,而sparksql只是把HDFS作为持久化工具它的数据基本都放内存。
查看hive tez的日志可以看到返回结果后有写HDFS的动作体现,会有类似日志:
- tez的优势spark都有并且tez其实缓冲优势并不大。而spark的缓冲效果更明显而且可以快速返回。例如:你查3万条数据tez是要全部查詢然后再返回的,而sparksql取到3万条其他就不算了(效果看起来是这样子具体没看源码实现;md hive tez-on-spark还是会全部跑)。
- tez任务缓冲不能共享spark更加细化,可以有process级别缓冲(就是用上次计算过的结果加载过的缓冲)!例如,你查数据记录同时又要返回count这时有些操作是prcess_local级别的,这个tez是不能比的!
- spark的日志UI看起来更便捷呵呵
单就从用的角度,spark全面取胜啊