我在IntelliJ IDEA 2018中创建了一个Spark maven项目,并尝试导出我的主类的可执行jar文件。当我尝试将其提交到Yarn群集时,The main class not found!
包含它时会出现MANIFEST.MF
错误:
Manifest-Version: 1.0
Main-Class: Test
我对Apache Flink等其他处理引擎做了同样的事情,IntelliJ可以创建一个可在群集上成功运行的可执行jar文件。
所以在Spark案例中,我总是必须使用maven-assembly-plugin
并使用以下命令导出jar文件:mvn clean compile assembly:single
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>Test</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
我猜这是因为Spark依赖格式。我在使用Spark依赖项(不可执行)从我的编写类创建jar文件时遇到了同样的问题。例如,在获取一些其他依赖项(如spark-sql
)时,向Maven项目eventuate添加spark-catalyst
依赖项。有没有办法使用IntelliJ IDEA导出Spark可执行jar文件?