繁体   English   中英

Spark SQL Hive Datanucleus jar类路径

[英]Spark SQL Hive Datanucleus jar Classpath

我有一个应用程序,一个基于Netty的REST服务器,它嵌入了spark sql,还有hivecontext来进行分析查询。 运行该服务时,在IntelliJ上一切正常。 但是我建立了一个盛有整个东西的超大罐子。 并且无法使其运行,因为Hive无法实例化其MetaStoreclient。 挖掘之后,蜂巢似乎无法解析数据核依赖性。 我运行我的应用程序为

java -jar app.jar

我试图用java -cp ...添加Datanucleus罐子,但是没有运气。 Spark文档建议使用--jars标志运行此命令,但仍然没有运气。 由于我想我不在这里使用spark-submit。

很感谢任何形式的帮助。 谢谢。

编辑:要回答以下问题,是的,我现在以master = local [*]在本地模式下启动Spark。 $ SPARK_HOME / conf /中有一个hive-site.xml。 在IntelliJ中运行时,它运行良好,hive在项目目录上创建了一个本地metastore,将其日志发送到derby.log。 在实例化SparkContext和HiveContext的有阴影的jar中启动Web服务器时,似乎会发生此问题。

所以我设法解决了这个问题。 由于我使用的是Maven Shade插件,因此需要将datanucleus jar添加到类路径中

  <transformer  implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
    <manifestEntries>
      <Main-Class>com.sparkserver.SparkServer</Main-Class>
      <Class-Path>..libs/mysql-connector-java-5.1.36.jar ../libs/datanucleus-core-3.2.10.jar ../libs/datanucleus-api-jdo-3.2.6.jar ../libs/datanucleus-rdbms-3.2.9.jar ../libs/bonecp-0.8.0.RELEASE.jar
     </Class-Path>
    </manifestEntries>
  </transformer>

由于使用-jar会删除通常的类路径,因此我在$ SPARK_HOME / libs中添加了具有匹配版本的这些行,并且工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM