hive on spark VS SparkSQL VS hive on tez

hive on spark VS SparkSQL VS hive on tez

前一篇已经弄好了SparkSQL,SparkSQL也有thriftserver服务,这里说说为啥还选择搞hive-on-spark:

  • SparkSQL-Thriftserver所有结果全部内存,快是快,但是不能满足查询大量数据的需求。如果查询几千万的数据,SparkSQL是搞不定的。而hive-on-spark除了计算用spark其他逻辑都是hive的,返回的结果会先写hdfs,再慢慢返回给客户端。
  • SparkSQL-Thriftserver代码的是全部用scala重写的,和已有hive业务不一定兼容!!
  • SparkSQL-Thriftserver有一个最大的优势就是整个server相当于hive-on-spark的一个session,网页监控漂亮清晰。而hive-on-spark不同的session那就相当于不同的application!!(2016-4-13 20:57:23)用了动态分配,没感觉SparkSQLThriftserver快很多。
  • SparkSQL由于基于内存,再一些调度方面做了优化。如[limit]: hive是死算,sparksql递增数据量的一次次的试。sparksql可以这么做的,毕竟算好的数据在内存里面放着。

hive和sparksql的理念不同,hive的存储是HDFS,而sparksql只是把HDFS作为持久化工具,它的数据基本都放内存。

查看hive的日志,可以看到返回结果后有写HDFS的动作体现,会有类似日志:

1
2
3
2016-03-28 19:39:25,687 INFO  exec.FileSinkOperator (Utilities.java:mvFileToFinalPath(1882))
 - Moving tmp dir: hdfs://zfcluster/hive/scratchdir/hadoop/de2b263e-9601-4df7-bc38-ba932ae83f42/hive_2016-03-28_19-38-08_834_7914607982986605890-1/-mr-10000/.hive-staging_hive_2016-03-28_19-38-08_834_7914607982986605890-1/_tmp.-ext-10001 
 to: hdfs://zfcluster/hive/scratchdir/hadoop/de2b263e-9601-4df7-bc38-ba932ae83f42/hive_2016-03-28_19-38-08_834_7914607982986605890-1/-mr-10000/.hive-staging_hive_2016-03-28_19-38-08_834_7914607982986605890-1/-ext-10001
  • tez的优势spark都有,并且tez其实缓冲优势并不大。而spark的缓冲效果更明显,而且可以快速返回。例如:你查3万条数据,tez是要全部查询然后再返回的,而sparksql取到3万条其他就不算了(效果看起来是这样子,具体没看源码实现;md hive-on-spark还是会全部跑)。
  • tez任务缓冲不能共享,spark更加细化,可以有process级别缓冲(就是用上次计算过的结果,加载过的缓冲)!例如,你查数据记录同时又要返回count,这时有些操作是prcess_local级别的,这个tez是不能比的!
  • spark的日志UI看起来更便捷,呵呵

单就从用的角度,spark全面取胜啊。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值