1. 程式人生 > >spark程式打jar包,把程式包和依賴包分開

spark程式打jar包,把程式包和依賴包分開

  • 1.首先在pom.xml檔案中新增外掛
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.4.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  • 2.在idea中執行package 命令,然後在target目錄下得到兩個.jar檔案,一個是程式jar,一個是依賴包jar
  • 3.此時提交程式jar到 yarn叢集,報錯java.lang.SecurityException: Invalid signature file digest for Manifest main attributes,在網上查,需要刪除jar(依賴包)中
    'META-INF/.SF' 'META-INF/.RSA' 'META-INF/*SF'

 ,命令是:

zip -d yourjar.jar 'META-INF/.SF' 'META-INF/.RSA' 'META-INF/*SF'

 或者用解壓工具開啟jar包,進入META-INF目錄中,刪除上面幾種檔案也可以。

最後spark-submit提交時,把依賴包跟在--jars後面即可。如有錯誤,請大家留言指出