hiveserver2会话泄漏

luaexgnf  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(401)

我有一个关于 hive 仓库连接器连接Spark到 hive 的问题。我的hive-warehouse连接器jar版本是hive-warehouse-connector-assembly-1.0.0.3.1.0.0-78.jar。
我能够成功地连接到配置单元并创建数据库,但是当我在hiveserver2中看到我的活动会话时,我可以看到我的连接仍然处于活动状态,即使我在finally块中有close函数。我从hortonworks看文件(https://docs.cloudera.com/runtime/7.0.0/integrating-hive-and-bi/topics/hive-hwc-interfaces.html)并看到hivewarehouseconnector在顶级接口上公开了close()方法。但是当我从github查看最新的jar版本时,我可以看到在顶层没有这样的方法(https://github.com/hortonworks-spark/spark-llap/releases/tag/v1.0.7-1.6). 有人知道如何关闭和释放HiveWarehouseConnector中的所有源,以便我可以看到会话从hiveserver2中清除吗?
是否有其他方法将spark连接到hive以便清除spark和hivecontext?
以下是我的代码供参考

try {
  val fullTableName = s"${_databaseName}.$tableName"
  val databasePath = s"$tableLocation/${_databaseName}"
  val finalPath = s"$databasePath/$tableName"
  logger.info(s"Database path: $databasePath")
  logger.info(s"Full table name: $fullTableName")
  logger.info(s"Final table path: $finalPath")
  // Create database
  logger.info(s"Creating database ${_databaseName} if it doesn't exists")
  println(s"executed query : CREATE DATABASE IF NOT EXISTS ${_databaseName} LOCATION '$databasePath'")
  hiveSession.executeUpdate(s"CREATE DATABASE IF NOT EXISTS ${_databaseName} LOCATION '$databasePath'")
  fullTableName
} finally {
  hiveSession.session().close()
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题