【发布时间】:2015-07-23 15:31:27
【问题描述】:
我是数据科学领域的新手,我不明白为什么有人想要将 Hive 连接到 Spark 而不仅仅是使用 Sqark-SQL。
在 Spark 上使用 Hive 而不是 Spark-SQL 有什么好处(除了能够在生产中使用 Hive 代码)?
谢谢
【问题讨论】:
标签: apache-spark hive bigdata apache-spark-sql
我是数据科学领域的新手,我不明白为什么有人想要将 Hive 连接到 Spark 而不仅仅是使用 Sqark-SQL。
在 Spark 上使用 Hive 而不是 Spark-SQL 有什么好处(除了能够在生产中使用 Hive 代码)?
谢谢
【问题讨论】:
标签: apache-spark hive bigdata apache-spark-sql
上面的答案不正确。 Hive 和 SparkSQL 之间共有的一个组件是 SemanticAnalyzer。 Hive 具有明显更好的 SQL 支持和更复杂的基于成本的优化器。 我的建议是在 Tez 上使用 Hive,而不是在 Spark 或 SparkSQL 上使用 Hive,因为它已准备好生产,更稳定且可扩展。
【讨论】:
嗯,似乎这里唯一的答案给出了使用 tez 的建议...
回到最初的问题,使用 Hive on Spark 的好处,恕我直言,好处主要是更好的 hive 功能支持,而不是 HiveQL 语言支持,Hive on Spark 对 hiveserver2 和安全功能有更好的支持。
在 SparkSQL 中它们确实有问题,SparkSQL 中有一个 hiveserver2 impl,但是 在最新版本 (1.6.x) 中,SparkSQL 中的 hiveserver2 不再与 hivevar 和 hiveconf 参数一起使用,并且通过 jdbc 登录的用户名也不起作用...见https://issues.apache.org/jira/browse/SPARK-13983
我们的要求是以安全的方式将 spark 与 hiveserver2 一起使用(使用 认证和授权),目前单用SparkSQL还不行 提供这个,我们不需要使用 HDFS 或 YARN 等其他 hadoop 组件,我们使用的是独立的 spark,因此对于我们的要求,我们在 Spark 上使用 ranger/sentry + Hive。
【讨论】: