0

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

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

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

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

实际上,从 SparkSQL/HiveContext 运行查询并不意味着运行 MR 作业吗?不是回到主要问题吗?如果我不需要将查询结果封装在更复杂的代码中,TEZ 还不够吗?

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

4

1 回答 1

1

实际上,从 SparkSQL/HiveContext 运行查询并不意味着运行 MR 作业吗?

它不是。事实上,使用HiveContextSparkSession与“Hive 支持”一起使用并不意味着与 Hive 有任何联系,除了使用 Hive 元存储。这种方法被许多其他系统使用,包括 ETL 解决方案和数据库。

最后:

  • Hive 是一个具有模块化组件的数据库。它支持相对丰富的权限系统、突变和事务。
  • Spark 是通用处理引擎。尽管有类似 SQL 的组件,但它并没有尝试成为数据库。
于 2017-10-13T16:39:48.490 回答