spark-shell Caused by: java.sql.SQLException: Failed to start database 'metastore_db' with ....

本文档详细解析了在使用Spark与Hive整合时遇到的元数据存储问题,包括Container无法打开、数据库启动失败等错误,提供了删除metastore_db目录、调整Hadoop配置和修改spark-env.sh文件等解决方案。
主要错误信息如下:
Caused by: org.apache.derby.iapi.error.StandardException: Container Container(0, 401) cannot be opened; it either has been dropped or does not exist.

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

Caused by: java.sql.SQLException: Failed to start database 'metastore_db' with class loader org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1@65d9e72a, see the next exception for details.

Caused by: ERROR 40XD2: Container Container(0, 401) cannot be opened; it either has been dropped or does not exist.
......
原因:可能之前您的环境和hive整合过
解决方法:
删除spark安装目录下的metastore_db目录,再次启动报如下错误
java.lang.IllegalArgumentException: Error while instantiating 
'org.apache.spark.sql.hive.HiveSessionState':
Caused by: java.net.ConnectException: Call From bigdata131/192.168.137.131 to 
bigdata131:9000

原因:可能您之前和yarn整合过
解决方法:
方法1:启动hdfs
方法2:修改spark配置文件和HADOOP相关的内容
  vim ./conf/spark-env.sh
  #export HADOOP_CONF_DIR=/root/training/hadoop-2.8.5/etc/hadoop 将这行改为
  export HADOOP_CONF_DIR=  注意这里值给空,但是变量要存在
  再次启动
  ./bin/spark-shell --master spark://bigdata131:7077
  ......
  Spark session available as 'spark'.
  Welcome to
  ____              __
  / __/__  ___ _____/ /__
  _\ \/ _ \/ _ `/ __/  '_/
  /___/ .__/\_,_/_/ /_/\_\   version 2.1.0
  /_/

  Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144)
  Type in expressions to have them evaluated.
  Type :help for more information.
  scala>

 

[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# sudo systemctl stop openfire [root@yfw openfire]# [root@yfw openfire]# # 彻底删除整个目录(不仅仅是内容) [root@yfw openfire]# sudo rm -rf /opt/openfire/embedded-db [root@yfw openfire]# [root@yfw openfire]# # 重新创建,并确保归属正确 [root@yfw openfire]# sudo mkdir -p /opt/openfire/embedded-db [root@yfw openfire]# [root@yfw openfire]# # 设置所有者为 openfire [root@yfw openfire]# sudo chown -R openfire:openfire /opt/openfire/embedded-db [root@yfw openfire]# sudo chmod 755 /opt/openfire/embedded-db [root@yfw openfire]# ls -l /opt/openfire/lib/derby-*.jar -rw-r--r-- 1 openfire openfire 3232770 Nov 15 15:46 /opt/openfire/lib/derby-10.14.2.0.jar [root@yfw openfire]# # 确保文件可被 openfire 用户写入 [root@yfw openfire]# sudo touch /opt/openfire/conf/security.xml [root@yfw openfire]# sudo chown openfire:openfire /opt/openfire/conf/security.xml [root@yfw openfire]# sudo chmod 664 /opt/openfire/conf/security.xml [root@yfw openfire]# sudo su - openfire -s /bin/bash -c ' > cat > /opt/openfire/conf/security.xml << EOF > <?xml version="1.0" encoding="UTF-8"?> > <jive> > <adminConsole> > <port>9090</port> > <securePort>9091</securePort> > <secure>false</secure> > <encryption>none</encryption> > </adminConsole> > <sasl> > <active>true</active> > </sasl> > </jive> > EOF > ' ✅ Environment loaded for openfire PATH = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/lib/jvm/java-11-openjdk/bin:/opt/maven/bin:/usr/local/ffmpeg/bin:/opt/spark/bin JAVA_HOME = /usr/lib/jvm/java-11-openjdk -bash: line 1: /opt/openfire/conf/security.xml: Permission denied [root@yfw openfire]# > /opt/openfire/logs/nohup.out [root@yfw openfire]# rm -f /opt/openfire/logs/openfire.pid [root@yfw openfire]# sudo systemctl start openfire [root@yfw openfire]# tail -f /opt/openfire/logs/nohup.out at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128) [?:?] at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347) [?:?] at java.lang.Class.newInstance(Class.java:645) [?:?] at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:92) [startup.jar:5.0.2] at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56) [startup.jar:5.0.2] Caused by: java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 attempts. The exception from the last attempt is as follows: java.sql.SQLException: Failed to create database '/opt/openfire/embedded-db', see the next exception for details. at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:204) ~[xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.verifyDataSource(XMPPServer.java:1010) ~[xmppserver-5.0.2.jar:5.0.2] ... 11 more 启动服务器时出错。有关详细信息,请查看日志文件。 tail: /opt/openfire/logs/nohup.out: file truncated 15:50:50.342 [main] ERROR org.jivesoftware.util.JiveGlobals - Unable to load default Openfire properties from: /opt/openfire/conf/openfire.xml java.io.IOException: XML properties file must be writable: openfire.xml at org.jivesoftware.util.XMLProperties.<init>(XMLProperties.java:156) ~[xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.util.JiveGlobals.loadOpenfireProperties(JiveGlobals.java:1276) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.util.JiveGlobals.getXMLProperty(JiveGlobals.java:308) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:367) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:658) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:221) [xmppserver-5.0.2.jar:5.0.2] at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) [?:?] at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:?] at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) [?:?] at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128) [?:?] at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347) [?:?] at java.lang.Class.newInstance(Class.java:645) [?:?] at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:92) [startup.jar:5.0.2] at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56) [startup.jar:5.0.2] Openfire 5.0.2 [2025年11月15日 下午3:50:50] Halting server... Server halted Halting server... Server halted tail: /opt/openfire/logs/nohup.out: file truncated 15:51:03.119 [main] ERROR org.jivesoftware.util.JiveGlobals - Unable to load default Openfire properties from: /opt/openfire/conf/openfire.xml java.io.IOException: XML properties file must be writable: openfire.xml at org.jivesoftware.util.XMLProperties.<init>(XMLProperties.java:156) ~[xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.util.JiveGlobals.loadOpenfireProperties(JiveGlobals.java:1276) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.util.JiveGlobals.getXMLProperty(JiveGlobals.java:308) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:367) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:658) [xmppserver-5.0.2.jar:5.0.2] at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:221) [xmppserver-5.0.2.jar:5.0.2] at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) [?:?] at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:?] at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) [?:?] at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128) [?:?] at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347) [?:?] at java.lang.Class.newInstance(Class.java:645) [?:?] at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:92) [startup.jar:5.0.2] at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56) [startup.jar:5.0.2] Openfire 5.0.2 [2025年11月15日 下午3:51:03] 管理控制台正在侦听 http://ecs-124-71-230-244.compute.hwclouds-dns.com:9090
最新发布
11-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值