Hive 本地启动时报错 Persistence Manager has been closed

ops/2024/9/20 7:27:47/ 标签: hive, hadoop

Hive 本地启动时报错 Persistence Manager has been closed

2024-09-07 17:21:45 ERROR RetryingHMSHandler:215 - Retrying HMSHandler after 2000 ms (attempt 2 of 10) with error: javax.jdo.JDOFatalUserException: Persistence Manager has been closedat org.datanucleus.api.jdo.JDOPersistenceManager.assertIsOpen(JDOPersistenceManager.java:2212)at org.datanucleus.api.jdo.JDOPersistenceManager.evictAll(JDOPersistenceManager.java:494)at org.apache.hadoop.hive.metastore.ObjectStore.rollbackTransaction(ObjectStore.java:804)at org.apache.hadoop.hive.metastore.ObjectStore$GetHelper.close(ObjectStore.java:3740)at org.apache.hadoop.hive.metastore.ObjectStore$GetHelper.run(ObjectStore.java:3633)at org.apache.hadoop.hive.metastore.ObjectStore.getDatabaseInternal(ObjectStore.java:1019)at org.apache.hadoop.hive.metastore.ObjectStore.getDatabase(ObjectStore.java:991)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:97)at com.sun.proxy.$Proxy118.getDatabase(Unknown Source)at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_database_core(HiveMetaStore.java:1370)at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_database(HiveMetaStore.java:1352)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:147)at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:108)at com.sun.proxy.$Proxy120.get_database(Unknown Source)at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getDatabase(HiveMetaStoreClient.java:1511)at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getDatabase(HiveMetaStoreClient.java:1506)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:212)at com.sun.proxy.$Proxy122.getDatabase(Unknown Source)at org.apache.hadoop.hive.ql.metadata.Hive.getDatabase(Hive.java:1662)at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.getDatabase(BaseSemanticAnalyzer.java:2166)at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.getDatabase(BaseSemanticAnalyzer.java:2160)at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeShowTables(DDLSemanticAnalyzer.java:2641)at org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer.analyzeInternal(DDLSemanticAnalyzer.java:389)at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:285)at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:659)at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1826)at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1773)at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1768)at org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:197)at org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:260)at org.apache.hive.service.cli.operation.Operation.run(Operation.java:247)at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:541)at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:527)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)at org.apache.hive.service.cli.session.HiveSessionProxy.access$000(HiveSessionProxy.java:36)at org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899)at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:59)at com.sun.proxy.$Proxy128.executeStatementAsync(Unknown Source)at org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:312)at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:562)at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1557)at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1542)at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:750)

过程

当在本地多个线程启动 HiveMetaStore 时,会根据 conf 创建和使用各自线程的 ObjectStore。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ObjectStore 创建时会设置 HiveConf,并且在设置 HiveConf 时,会判断 HiveConf 是否进行了更新,这时如果没有设置 forTwoMetastoreTesting 参数的话,会关闭 ObjectStore类静态对象 pmf (PersistenceManagerFactory),而 pmf 关闭时也会将内部缓存的JOPPersistenceManager 全部关闭。

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将
在这里插入图片描述

这就出现了个问题,ObjectStore 内部缓存着静态变量 PersistenceManagerFactory pmf 创建的 PersistenceManager pm,如果有多个 ObjectStore,其中一个 ObjectStore 关闭了 pmf,pmf 关闭了所有内部所有的 PersistenceManager,那么其他的 ObjectStore 缓存的 pm 肯定是关闭的,所以这个时候就出现了 Persistence Manager has been closed 的问题。

在这里插入图片描述

概括

当在本地多个线程启动 HiveMetaStore 时,会根据 conf 创建和使用各自线程的 ObjectStore。

ObjectStore 创建时会设置 HiveConf,并且在设置 HiveConf 时,会判断 HiveConf 是否进行了更新,这时如果没有设置 forTwoMetastoreTesting 参数的话,会关闭 ObjectStore类静态对象 pmf (PersistenceManagerFactory),而 pmf 关闭时也会将内部缓存的JOPPersistenceManager 全部关闭。

这就出现了个问题,ObjectStore 内部缓存着静态变量 PersistenceManagerFactory pmf 创建的 PersistenceManager pm,如果有多个 ObjectStore,其中一个 ObjectStore 关闭了 pmf,pmf 关闭了所有内部所有的 PersistenceManager,那么其他的 ObjectStore 缓存的 pm 肯定是关闭的,所以这个时候就出现了 Persistence Manager has been closed 的问题。

解决办法:

  1. 设置 ObjectStore 类中静态变量 forTwoMetastoreTesting 为 true (推荐)

    在这里插入图片描述

  2. 使用单个线程启动 HiveMetaStore

  3. 修改源码使多个线程启动的 HiveMetaStore 共享同一个ObjectStore


http://www.ppmy.cn/ops/109832.html

相关文章

大二上学期详细学习计划

本学习完成目标: 项目: 书籍:《mysql必知必会》《java核心技术卷》(暂时)加强JavaSE的学习,掌握Java核心Mysqlsql(把牛客上的那50道sql语句题写完)gitmaven完成springboot项目&…

相机不小心格式化了怎么恢复?如何快速找回珍贵照片

在数字摄影时代,相机格式化是一个令人头疼的问题。一旦不小心执行了这个操作,珍贵的照片和视频可能会瞬间消失。然而,幸运的是,通过一些专业的方法,我们仍有可能恢复这些被误删的数据。接下来,本文将介绍四…

浅谈:CDN下真实IP的暴露

免责声明:本文仅做分享! 目录 CDN简介: 国内常见CDN: 国外常见CDN: 判断CDN存在? 在线ping检测: nslookup: 寻找真实IP----> 1-DNS历史解析纪录 2-子域名查询 1.在线平台查询 2.工具爆破 3.搜索引擎 3-网站邮件头信息 4-S…

Linux虚拟机安装(CentOS9)

需要自己设置一下内存,处理器,以及镜像文件 **************************************************************** 设置完硬件后,启动虚拟机,开始配置操作系统 选择英文 这里需要改三个地方 1. 2. 3. 设置root账户的密码 全部完…

Java复习【知识改变命运】第四章

数组 1.数组的创建2.数组的赋值机制3.二维数组的创建4.数组的赋值机制5.二维数组练习 1.数组的创建 动态初始化: 数据类型[] 数组名称new 数组名称[大小];静态初始化: 数据类型[] 数组名称{元素,元素,元素...};2.数组的赋值机制…

一看就懂!什么叫做深度合成算法备案

一看就懂!什么叫做深度合成算法备案 目前市场上比较热门的AIGC应用主要集中在图像和文本的生成领域。在图像生成方面,模型层面有Stable-diffusion,产品层面有MidJourney等。在文本生成方面,国外以OpenAI的ChatGPT为代表&#xff0…

Spring 循环依赖原理及解决方案

一、什么是循环依赖 循环依赖指的是一个实例或多个实例存在相互依赖的关系(类之间循环嵌套引用)。 举例: Component public class AService {// A中注入了BAutowiredprivate BService bService; }Component public class BService {// B中也…

Postman做接口测试时一些实用的操作

Postman 之前是作为Chrome 的一个插件,现在要下载应用才能使用。 以下是postman 的界面: 各个功能区的使用如下: 快捷区: 快捷区提供常用的操作入口,包括运行收藏夹的一组测试数据,导入别人共享的收藏夹测…

Ironic服务是什么;Ironic服务中用户镜像,租户怎么使用

目录 Ironic服务是什么 一、Ironic服务简介 二、Ironic服务的使用方法 1. 部署与配置 2. 注册与管理裸金属节点 3. 部署与监控 4. 插件与集成 三、使用场景 四、总结 Ironic服务中用户镜像,租户怎么使用 用户镜像的创建与准备 租户使用用户镜像 注意事项 Ironic服…

SpringCloud之Sleuth(Micrometer)+ZipKin分布式链路追踪

(学习笔记) 1、分布式链路追踪概述 问题:在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路&#xf…

传输层协议UDP

本篇将主要介绍 UDP 协议,介绍了有关 UDP 协议的报头、协议特点、UDP 协议在操作系统中的缓冲区、UDP 协议使用的注意事项,以及有关 UDP 的 Socket 编程程序,同时重点介绍了操作系统对于 UDP 协议报文的管理。 接着介绍了有关端口号的映射。 …

powerbi

一. CALCULATE 和 FILTER FILTER 返回的数据必须是表, 所以 可以 用在 新建表中, 不能直接用在度量值中其实 filter 相当于 用 外表字段 去进行筛选 不使用 filter, 只能使用本表字段 进行筛选,如下1, 只能使用 门店信…

cookie实战案例-自动登录网站

在写爬虫的时候,要伪装成真实用户请求。可能需要大量的IP地址,那么大量的IP地址从哪里来呢?这里就需要用代理IP来解决了,有的网站专门通过提供代理IP池服务作为主要的经营业务,只要注册相关网站开通对应套餐就可以了。…

Linux中的进程概念

Linux中的进程概念是操作系统核心功能之一,它对于理解系统如何管理和运行程序至关重要。以下是对Linux进程概念的详细解析,涵盖进程的定义、特性、状态、创建与终止、内存管理、优先级与调度等多个方面。 一、进程的定义 进程是Linux系统中运行中的程序…

深入浅出:Android屏幕刷新机制

if (status) {//初始化出现异常 String8 message;led to initialize display event receiver. status message.appendFormat(“Fai%d”, status); jniThrowRuntimeException(env, message.string()); return 0; } receiver->incStrong(gDisplayEventReceiverClassInfo.clazz…

Docker 容器技术:简化 MySQL 主从复制部署与优化

Docker 容器技术:简化 MySQL 主从复制部署与优化 引言 随着大数据和云计算的快速发展,数据库的高可用性、可扩展性和易维护性成为了企业IT架构中的重要考量因素。MySQL 作为一款流行的开源数据库管理系统,其主从复制(Master-Sla…

【Unity插件】Asset Store中关于输入的插件汇总

在Unity的Asset Store中,有许多高质量的插件可以帮助开发者更高效、灵活地处理输入系统,特别是针对多平台、多设备输入场景。以下是一些在输入处理方面备受欢迎的插件: 1. Rewired 简介:Rewired是Unity中最受欢迎的输入系统替代…

基于YOLOv10的垃圾检测系统

基于YOLOv10的垃圾检测系统 (价格90) 包含 [CardBoard, Glass, Metal, Paper, Plastic] 5个类 [纸板, 玻璃, 金属, 纸张, 塑料] 通过PYQT构建UI界面,包含图片检测,视频检测,摄像头实时检测。 (该系统可以根据数据训练出的…

mysql性能优化-MySQL 复制与高可用

一、MySQL 复制的工作原理 MySQL 复制是指将一个 MySQL 实例(主库,Master)上的数据和操作同步到其他实例(从库,Slave),从而实现数据的多副本存储和分布式处理。 1. 复制的三大步骤 MySQL 复制…

OpenHarmony鸿蒙( Beta5.0)RTSPServer实现播放视频详解

鸿蒙开发往期必看: 一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发! “非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通) “一杯冰美式的时间” 了解鸿蒙HarmonyOS Next应用开发路…