0

我正在使用 Spark 查询 Hive,然后进行转换。我的 Scala 应用程序创建了多个 Spark 应用程序。只有在关闭前一个 Spark App 的 SparkSession 和 Spark Context 后,才会创建一个新的 Spark 应用。

但是,在停止 sc 和 spark 时,以某种方式与 Hive Metastore (Mysql) 的连接没有被正确破坏。对于每一个 Spark 应用程序,我都可以看到大约 5 个 Mysql 连接正在创建(旧连接仍然处于活动状态!)。最终,Mysql 在打开 150 个连接后开始拒绝新连接。如何强制 spark 关闭与 Mysql 的 Hive Metastore 连接(在 spark.stop() 和 sc.stop() 之后)?

注意:我使用的是 Spark 2.1.1。我正在使用 Spark 的 Thriftserver 而不是 HiveServer。所以,我认为我没有使用过 Hive Metastore 服务。

4

1 回答 1

0

我有一个类似的问题,有一个由 MySQL 支持的 hive 3.1.1 元存储。我正在使用该wait_timeout变量来获取超过 10 分钟处于非活动状态的连接。默认值为 8 小时。

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout

这感觉不是一个“正确”的解决方案,但它允许我们的系统运行。

于 2020-04-08T14:23:26.330 回答