【问题标题】:Spark-SQL plug in on HIVE在 HIVE 上插入 Spark-SQL 插件
【发布时间】:2021-07-30 18:02:20
【问题描述】:

HIVE 有一个 Metastore,HIVESERVER2 监听 SQL 请求;在 Metastore 的帮助下,执行查询并将结果传回。 Thrift 框架实际上被定制为 HIVESERVER2。通过这种方式,HIVE 充当服务。通过编程语言,我们可以使用 HIVE 作为数据库。

Spark-SQL 和 HIVE 的关系是:

Spark-SQL 仅使用 HIVE 设置(HDFS 文件系统、HIVE Metastore、Hiveserver2)。当我们调用 /sbin/start-thriftserver2.sh(存在于 spark 安装中)时,我们应该提供 hiveserver2 端口号和主机名。然后通过 spark 的直线,我们实际上可以在 HIVE 中创建、删除和操作表。 API 可以是 Spark-SQL 或 HIVE QL。 如果我们创建一个表/删除一个表,如果我们登录到 HIVE 并检查(比如通过 HIVE beeline 或 HIVE CLI),它将清晰可见。换句话说,通过 Spark 所做的更改可以在 HIVE 表中看到。

我的理解是,Spark 没有像 HIVE 这样的自己的元存储设置。 Spark 只是利用 HIVE 设置,并且简单地通过 Spark SQL API 执行 SQL。

我的理解正确吗?

然后我对 bin/spark-sql.sh 的用法有点困惑(它也存在于 Spark 安装中)。文档说通过这个 SQL shell,我们可以像上面那样创建表(通过 Thrift Server/Beeline)。现在我的问题是:那么spark是如何维护元数据信息的呢?

或者像第一种方法一样,我们可以让 spark-sql CLI 与 HIVE 通信(具体来说:HIVE 的 hiveserver2)吗? 如果是,我们该怎么做?

提前致谢!

【问题讨论】:

    标签: hive apache-spark-sql


    【解决方案1】:

    我的理解是 Spark 没有像 HIVE 这样的自己的元存储设置

    如果未提供 Hive 元存储,Spark 将自行启动 Derby 服务器

    我们可以制作 spark-sql CLI 来与 HIVE 通信吗

    启动一个外部元存储进程,将hive-site.xml 文件添加到$SPARK_CONF_DIRhive.metastote.uris,或者使用SET SQL 语句来实现同样的目的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 2016-12-04
      • 2013-06-29
      • 2019-02-16
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      相关资源
      最近更新 更多