分享

SparkSQL是一个单独的Job吗?

本帖最后由 梦回三国 于 2015-5-29 14:29 编辑

            不知道有没有在项目中用到SparkSQL的?SparkSQL应该跟Hbase查询不一样吧,Hbase查询不是基于MapReduce的,因此每一个查询并不是启动一个job去执行。但是SparkSQL呢,我怎么感觉每一次查询都是启动一个Spark Job去执行呢,特别是对于SparkStreaming的查询,因为SparkStreaming的job一直不停的在运行,官方的例子是sql查询直接嵌入foreachRDD中,但是如果我想动态更改查询条件呢,难道每更改一次查询条件就要重新启动一次job吗?不知道我的理解对不对,请大神指教。

已有(4)人评论

跳转到指定楼层
Alkaloid0515 发表于 2015-5-29 11:12:48
跟楼主观点不同。
首先hbase的执行是不需要mapreduce的,hive执行会转化为mapreduce.
spark sql的执行跟关系数据的执行原理是一样的。并不是转换为job,而是转换Tree和Rule

1.png
2.png
3.png

回复

使用道具 举报

梦回三国 发表于 2015-5-29 11:28:22
Alkaloid0515 发表于 2015-5-29 11:12
跟楼主观点不同。
首先hbase的执行是不需要mapreduce的,hive执行会转化为mapreduce.
spark sql的执行跟 ...

spark sql的执行跟关系数据的执行原理是一样的吗?难道针对同一个job,比如StreamingJob,如果结合SparkSQL的话,可以运行多个SparkSQL的查询吗?官网最新版Spark1.3.1倒是有那么一句话“You can also run SQL queries on tables defined on streaming data from a different thread (that is, asynchronous to the running StreamingContext).”,http://spark.apache.org/docs/latest/streaming-programming-guide.html#dataframe-and-sql-operations.但是仅有此处有提及,SparkSQL的介绍里并没有提及相关部分。所以我很疑惑,因为我们是对流数据进行处理,如果不能类似于普通关系数据库sql查询的话,每次更改查询都需要重启job的话,那就太麻烦太不现实了。请问你是从哪判断SparkSQL是跟普通关系数据库的查询一样的原理呢?
回复

使用道具 举报

Alkaloid0515 发表于 2015-5-29 11:44:51
梦回三国 发表于 2015-5-29 11:28
spark sql的执行跟关系数据的执行原理是一样的吗?难道针对同一个job,比如StreamingJob,如果结合SparkS ...



楼主参考这个

sparkSQL1.1入门之二:sparkSQL运行架构
回复

使用道具 举报

tntzbzc 发表于 2017-2-8 14:42:11
即使传统的程序,一旦确定了,是不能随便修改的。不过你可以通过配置文件操作,当你想修改sql的时候,可以直接修改sql。不用修改程序。但是重启应该是必须的。
对于查询条件修改,可以想其它办法。比如使用条件判断,写到程序里。
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条