spark sql 在 hive 上的目的是什么?
what's the purpose of spark sql over hive?
我知道这个问题几年前就有人问过,但我仍然想知道使用 SparkSQL / HiveContext 的真正目的。
Spark 方法提供了比内置 MapReduce 更通用的分布式方式。
我看了很多文章说MR方式已经死了,Spark是最好的(我知道我可以通过Spark实现MR方式)。
推荐使用HiveContext查询数据的时候,我有点懵
确实,运行 来自 SparkSQL/HiveContext 的查询是否暗示 运行 MR 工作?这不是回到主要问题吗?如果不需要将查询结果封装在更复杂的代码中,TEZ 还不够吗?
我错了吗(我确定我错了:-))?
Indeed, running a query from SparkSQL/HiveContext doesn't it imply running a MR job ?
没有。事实上,使用 HiveContext
或 SparkSession
和 "Hive support" 并不意味着与 Hive 有任何联系,除了使用 Hive metastore。许多其他系统都使用这种方法,包括 ETL 解决方案和数据库。
最后:
- Hive 是一个具有模块化组件的数据库。支持比较丰富的权限系统、突变和交易。
- Spark 是通用处理引擎。尽管有 SQL-ish 组件,但它不会尝试成为数据库。
我知道这个问题几年前就有人问过,但我仍然想知道使用 SparkSQL / HiveContext 的真正目的。
Spark 方法提供了比内置 MapReduce 更通用的分布式方式。
我看了很多文章说MR方式已经死了,Spark是最好的(我知道我可以通过Spark实现MR方式)。
推荐使用HiveContext查询数据的时候,我有点懵
确实,运行 来自 SparkSQL/HiveContext 的查询是否暗示 运行 MR 工作?这不是回到主要问题吗?如果不需要将查询结果封装在更复杂的代码中,TEZ 还不够吗?
我错了吗(我确定我错了:-))?
Indeed, running a query from SparkSQL/HiveContext doesn't it imply running a MR job ?
没有。事实上,使用 HiveContext
或 SparkSession
和 "Hive support" 并不意味着与 Hive 有任何联系,除了使用 Hive metastore。许多其他系统都使用这种方法,包括 ETL 解决方案和数据库。
最后:
- Hive 是一个具有模块化组件的数据库。支持比较丰富的权限系统、突变和交易。
- Spark 是通用处理引擎。尽管有 SQL-ish 组件,但它不会尝试成为数据库。