分享

[疑问]关于Hive on Spark

xingoo 发表于 2016-8-31 16:16:18 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 7781
本帖最后由 xingoo 于 2016-8-31 16:52 编辑

Hive是基于Hadoop的mapreduce来对hdfs做查询;
Hive on Tez 是有人觉得mapreduce性能不好,于是用Tez替换mapreduce;
shark是替换了编译器,让Hive最终能运行在spark上,但是对hive的侵入太大了;
hive on spark是在把执行引擎替换成了spark,并针对rdd提供一系列的转换;
spark sql则是仅仅用了hql,后面的解释器、编译器全都替换了.....

不过我上网搜了很多的帖子,“hive on spark”很多都是在spark上面去用hive,比如:
http://blog.csdn.net/yeruby/article/details/51448188

我想问下,官方提供的Hive on spark(替换执行引擎),跟博客里面说的(在spark里面跑hive),有什么不同?谁更好一些?
[mw_shl_code=applescript,true]val hiveContext = new HiveContext(sc)
import hiveContext._
hql("CREATE TABLE IF NOT EXIST src(key INT, value STRING)")
hql("LOAD DATA LOCAL PATH '/Users/urey/data/input2.txt' INTO TABLE src")
hql("FROM src SELECT key, value").collect().foreach(println)[/mw_shl_code]


已有(4)人评论

跳转到指定楼层
einhep 发表于 2016-8-31 19:19:55
楼主是说spark sql和hive on spark吧。
个人认为spark sql更快一些。
楼主也可以测试下
回复

使用道具 举报

xingoo 发表于 2016-9-1 08:20:42
einhep 发表于 2016-8-31 19:19
楼主是说spark sql和hive on spark吧。
个人认为spark sql更快一些。
楼主也可以测试下

我说的那个spark里面跑Hive,跟spark sql是两回事吧!你看它使用的是hiveContext,sql也是hql()这种用法。
回复

使用道具 举报

einhep 发表于 2016-9-2 13:06:28
xingoo 发表于 2016-9-1 08:20
我说的那个spark里面跑Hive,跟spark sql是两回事吧!你看它使用的是hiveContext,sql也是hql()这种用法 ...

楼主可以在查下资料,二者是一码事的

Hive on spark(替换执行引擎),跟博客里面说的(在spark里面跑hive)


Hive on Spark就是是在spark里面跑hive,用的是Spark执行引擎,不是MapReduce
回复

使用道具 举报

xingoo 发表于 2016-9-2 13:51:44
einhep 发表于 2016-9-2 13:06
楼主可以在查下资料,二者是一码事的

我又研究了一下,总结如下:

shark其实就是一种hive on spark,不过改动hive的源码太大,而遭放弃。

hive on spark:
目前说的hive on spark,仅仅是替换执行引擎。如果安装的是2.0,使用的时候就会给出提示说hive on MR不推荐使用了,推荐使用Hive on Tez或者hive on spark。并且官方给出了如何替换MR的配置。

spark SQL with Hive
而在spark里面用hive,则是说spark sql,它集成了hive的语法规则以及metastore的信息,让用户可以基于spark去操作现存的hive数据,并能使用Hive中提供的各种函数等等。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条