首页 > 数据库 >SparkSQL无法创建多个Session解决方法

SparkSQL无法创建多个Session解决方法

时间:2024-01-29 19:45:52浏览次数:26  
标签:INFO 25 01 19 创建 51 2024 Session SparkSQL

一、问题现象

SparkSQL创建多个session报错,不能创建一个链接,链接Spark自带的数据库derby

2024-01-25 19:50:59.053 [INFO ]24/01/25 19:50:59 INFO !PLExecution!: Execute SQL: DROP TABLE IF EXISTS ibor_nfsd_instjmport 2024-01 -25 19:51:01.628 (INFO ]24/01/25 19:51:01 INFO HiveUtils: Initializing HiveMetastoreConnection version 2.3.9 using Spark classes.

2024-01 -25 19:51:02.009 [INFO ]24/01/25 19:51:02 INFO HiveClientlmpI: Warehouse location for Hive client (version 2.3.9) is file:/opt/bdata/studio-axas/platform-server/spark-warehouse

2024-01 -25 19:51:03.286 [INFO ]19:51:03.209 [main] ERROR DataNucleus.Datastore.Schema - Failed initialising database. 2024-01 -25 19:51:03.286 [INFO ]org.datanucleus.exceptions.NucleusDataStoreException: Unable to open a test connection to the given database. JDBC url = jdbc:derby:;databaseName=metastore_db;create=true, username = APP. Terminating connection pool (set lazylnit to true if you expect to start your database after your app). Original Exception:..........................

2024-01 -25 19:51:03.286 [INFO Jjava.sql.SQLException: Failed to start database 'metastore_db' with class loader org.apache.spark.sql.hive.clientlsolatedClientLoader$$anon$1@2c3c36df, see the next exception for details.

2024-01 -25 19:51:03.286 [INFO ] at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)

2024-01 -25 19:51:03.286 [INFO ] at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.impl.jdbc.EmbedConnection.(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.jdbc.lnternalDriver$1.run(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.jdbc.lnternalDriver$1.run(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at java.security.AccessController.doPrivileged(Native Method)

2024-01 -25 19:51:03.286 [INFO ] at org.apache.derby.jdbc.lnternalDriver.getNewEmbedConnection(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.jdbc.lnternalDriver.connect(Unknown Source)

2024-01 -25 19:51:03.286 [INFO ] at org.apache.derby.jdbc.lnternalDriver.connect(Unknown Source)

2024-01-25 19:51:03.286 [INFO ] at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)

2024-01 -25 19:51:03.286 [INFO ] at java.sql.DriverManager.getConnection(DriverManager.java:664)

2024-01-25 19:51:03.286 [INFO ] at java.sql.DriverManager.getConnection(DriverManager.java:208)

二、具体原因

SparkSQL使用thrift server方式链接创建链接,使用Derby为元数据库,会在指定目录下创建一个metadata_db文件,如果多个任务并发,会创建多个文件,造成无法使用

三、解决方法

 为每个作业执行一个元数据目录,通过-Dderby.system.home方式为每个session指定一个元数据文件目录

标签:INFO,25,01,19,创建,51,2024,Session,SparkSQL
From: https://www.cnblogs.com/chhyan-dream/p/17995167

相关文章

  • 线程的三种创建方式
    1//方式一:继承Thread类2publicclassThread{3publicstaticvoidmain(String[]args){4Threadt=newMyThread();5t.start();67for(inti=0;i<5;i++){8System.out.println("主线程:"+......
  • Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--创建字符子集
    项目地址:Pdfium.Net:https://github.com/1000374/Pdfium.NetPdfiumViewer:https://github.com/1000374/PdfiumViewerPdfium.Net.Free一个免费的Pdfium的.net包装器--加载字体 接上篇,怎么创建字符子集呢?获取字符集内的字形符号需要引用wpf下PresentationCore.dll,根据比对传入......
  • 创建linux桌面快捷方式
    第一步在linux桌面上创建一个xx.desktop文件,如下图第二步在desktop文件中输入启动命令和参数,保存文件[DesktopEntry] Encoding=UTF-8 Name=SQLDeveloper Comment=OracleSQLDeveloper Icon=/opt/sqldeveloper/icon.png Exec=/opt/sqldeveloper/sqldeveloper.sh Term......
  • 在Python的Tkinter库中,`ttk.Combobox`是一个组合框控件,它允许用户从下拉列表中选择一
    在Python的Tkinter库中,`ttk.Combobox`是一个组合框控件,它允许用户从下拉列表中选择一个选项,也可以让用户输入内容。以下是一些主要的参数和方法:1.**创建Combobox**¹²:  ```python  importtkinterastk  importtkinter.ttkasttk  root=tk.Tk()  ......
  • 在Tkinter中,`Frame`的大小可以通过多种方式进行调整: 1. **设置宽度和高度**:在创建`Fr
    在Tkinter中,`Frame`的大小可以通过多种方式进行调整:1.**设置宽度和高度**:在创建`Frame`时,可以直接设置其宽度(`width`)和高度(`height`)¹⁴。例如:  ```python  frame=tk.Frame(root,width=200,height=100)  frame.pack()  ```2.**自适应窗口大小**:可以使......
  • TopShelf创建服务
    TopShelf创建Windows服务安装NuGet包TopShelf如图1-1所示,先安装TopShelf的NuGet包;图1-1创建服务类如图1-2所示,创建一个ServiceManager服务类,并创建了两个方法,分别为Start和Stop方法,分别在服务启动和停止时调用;图2-1使用TopShelf创建服务如图3-1所示,在Program.cs文件中对......
  • 在K8S中,deploy创建过程包括什么?
    在Kubernetes(简称K8s)中,创建一个Deployment的过程主要包括以下步骤:编写DeploymentYAML文件:首先,需要使用YAML格式编写一个描述Deployment的配置文件。这个文件定义了Deployment的关键属性,如副本数(replicas)、容器镜像、Pod模板以及健康检查等。例如,创建一个运行Nginx服务的Dep......
  • JVM对象创建与内存分配
    对象创建流程对象内存分配对象内存分配流程图对象栈上分配我们通过JVM内存分配可以知道JAVA中的对象都是在堆上进行分配,当对象没有被引用的时候,需要依靠GC进行回收内存,如果对象数量较多的时候,会给GC带来较大压力,也间接影响了应用的性能。为了减少临时对象在堆内分配的数量,JV......
  • 使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序搭建私有Nuget服务器
    使用NuGet.Server创建和部署ASP.NETWeb应用程序搭建私有Nuget服务器在VisualStudio中,选择“新建>文件>”Project,搜索“ASP.NETWeb应用程序(.NETFramework)”,选择C#的匹配模板。将“框架”设置为“.NETFramework4.6”。为应用程序提供除NuGet.Server......
  • 通过billing document V2 OData API cancel billing document 和通过 soap api 创建bi
    1:apihub找到相应的api,https://api.sap.com/package/SAPS4HANACloud/odata  通过执行cancelbillingdocument,可以发现cancelaction的payload和url 2:postaction在apihub中不能执行,需要到postman或者gatewayclient执行。 ......