什么是spark sql over hive的目的?

时间:2017-10-13 16:31:31

标签: apache-spark hive tez

我知道这个问题已在几年前被问过,但我仍然想知道使用SparkSQL / HiveContext的真正目的。

Spark方法提供了一种比内置MapReduce更通用的分布式方法。

我读了很多文章声称MR方式已经死了,Spark是最好的(我知道我可以通过Spark实现MR方法)。

当建议使用HiveContext查询数据时,我有点困惑。

确实,从SparkSQL / HiveContext运行查询并不意味着它运行MR作业?是不是要回到主要问题?如果我不需要将查询结果封装在更复杂的代码中,那么TEZ是不是应该这样做?

我错了(我确定我是:-))?

1 个答案:

答案 0 :(得分:1)

  

确实,从SparkSQL / HiveContext运行查询并不意味着它正在运行MR作业吗?

没有。事实上,使用HiveContextSparkSession使用" Hive支持"除了使用Hive Metastore之外,并不意味着与Hive有任何联系。许多其他系统(ETL解决方案和数据库)都使用此方法。

最后:

  • Hive是一个包含模块化组件的数据库。它支持相对丰富的权限系统,突变和事务。
  • Spark是通用处理引擎。尽管有SQL-ish组件,但它并没有尝试成为数据库。