apache-spark - 使用 spark-jobserver 0.8.1 创建数据库“metastore_db”失败
问题描述
我正在将我的服务器从 spark 2.1.1 和 job-server 0.8.0 升级到 spark 2.3.0 和 job-server 0.8.1-SNAPSHOT(工作正常)。我将 JobSqlDao 与 MySql 一起使用,并使用 SessionContextFactory 创建一个 sqlContext。在 local.conf 中,我有:
sql-context {
context-factory = spark.jobserver.context.SessionContextFactory
}
一切正常,端口 8090 和 4040 看起来一切正常,但是当我尝试向作业服务器发出第一个请求时,我得到了
错误 XBM0H:无法创建目录 /metastore_db
在网上搜索后,这看起来与 Hive 有关。我没有在我的代码中使用 hive,但似乎关于新的 SessionContextFactory 的某些东西似乎需要它。所以我在 spark/conf 中添加了一个 hive-site.xml 文件,内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/home/mineset/metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
</configuration>
但现在我得到这个错误:
原因:java.net.ConnectException:从 ra.esi-internal.esi-group.com/192.168.xxx.xx 到 192.168.xxx.xx:8020 的调用因连接异常失败:java.net.ConnectException:连接被拒绝;有关更多详细信息,请参阅: http ://wiki.apache.org/hadoop/ConnectionRefused at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect。 DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
我还尝试将 hive-site.xml 配置为使用 mysql(实际上是 mariadb),但随后出现如下错误:
ENGINE=INNODB : 指定的键太长;最大密钥长度为 767 字节 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; 最大密钥长度为 767 字节 网络搜索表明这可以通过升级到 5.7 来解决(我目前使用的是 5.5,并且真的不想升级)。
是否有上下文工厂可用于获取不需要配置单元的 sqlContext?这个 SessionContextFactory 是 0.8.1 中的新内容,似乎是我的问题的根源。似乎有很多方法可以配置 hive(使用 derby、mysql、embeded、client 等)。我认为在我的情况下如何配置并不重要,因为我不使用它 - 我只想找到一种不会出错的简单方法。有什么建议么?
解决方案
推荐阅读
- android - Mapbox Android中自定义mapMatched路线的逐步导航
- python - Python3.7解释器中使用opencv和pytesseract从图像中提取文本的问题
- node.js - 我已经检查了所有的缩进,我认为一切都很好,但是我的脚本从我的 index.tsx 文件中返回了这个错误
- graph - 使用 Rcy3 根据节点颜色向图形添加图例
- java - jackson 反序列化父对象
- sql-server - Azure 混合连接 SQL 连接停止工作。重新启动 Web 应用程序会有所帮助。EnableRetryOnFailure 有问题吗?
- python-3.x - 我正在尝试在 Pandas 中使用 reindex 使列成为索引,但出现错误
- jupyter-notebook - jupyter nbextensions 安装后不可用
- python - CSV 的数据框返回一个空列,该列在数据框中可见
- android - 如何在 webview 中从 xamarin android 按钮显示警报功能