我正在用Apache Spark Hive构建apache-spark应用程序.到目前为止一切正常 - 我一直在Intellij IDEA中运行测试和整个应用程序,并使用maven一起进行所有测试.
现在我想从bash运行整个应用程序,让它与本地单节点集群一起运行.我正在使用maven-shade-plugin来构建单个可执行JAR.
当应用程序尝试使用SparkContext创建新的HiveContext时,应用程序崩溃.引发异常告诉我,hive不能创建Metastore,因为datanucleus及其插件系统存在一些问题.我尝试了几个问题,如何运行datanucleus插件系统与阴影,但运气不好.例如: Datanucleus,JDO和可执行jar - 怎么做?
使用hive组合应用程序的可执行JAR并从bash运行它的最佳方法是什么?也许是一些datanucleus及其插件系统的设置?
的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>hive-test</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.7</version>
</dependency>
<!-- spark -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>1.6.0</version>
</dependency>
</dependencies>
<properties>
<!-- To be specified in child pom: <main.class></main.class> -->
<final.jar.name>${project.artifactId}-${project.version}</final.jar.name>
<main.class>com.test.HiveTest</main.class>
</properties>
<build>
<plugins>
<!-- the Maven compiler plugin will compile Java source files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin> …Run Code Online (Sandbox Code Playgroud) datanucleus maven maven-shade-plugin apache-spark spark-hive