1. 程式人生 > >ambari叢集中spark叢集執行jar踩的坑

ambari叢集中spark叢集執行jar踩的坑

公司三臺測試伺服器,測試spark的叢集模式是否正常執行遇到的問題:
1.spark執行spark任務遇到的,
SparkContext did not initialize after waiting for 100000 ms. Please check earlier log output for errors. Failing the application.
參考部落格:
https://www.cnblogs.com/huanongying/archive/2017/10/12/7655598.html

執行指令碼有問題:
sudo -u hdfs /usr/hdp/2.6.5.0-292/spark2/bin/spark-submit \ spark的bin目錄下執行
–master yarn \ spark的叢集模式
–deploy-mode cluster \ yarn 的模式
–class com.amhy.test.Sprk01 \ 類的全路徑
–num-executors 3 \ executor的數量
–driver-memory 512m \ driver的記憶體
–executor-memory 1g \ executor的記憶體
–executor-cores 1
/bigdata/jars/scala-yarn.jar \

將submit.py檔案修改成可執行檔案:
chmod +x 檔名
在這裡插入圖片描述

執行方法: ./檔名

執行時產生的異常:
Exception in thread “main” java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction2mcIIImcIIIsp

可能的問題:1.叢集的scala的版本和idea中scala的版本不一致
解決辦法:idea中修改scala的sdk,改成叢集中scala的版本
2.可能是包的問題,把依賴包打進去一直在叢集上執行,可能叢集沒有這個依賴包

    <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-shade-plugin</artifactId>  
        <version>2.4.1</version>  
        <executions>  
            <execution>  
                <phase>package</phase>  
                <goals>  
                    <goal>shade</goal>  
                </goals>  
                <configuration>  
                    <transformers>  
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                            <mainClass>com.xxg.Main</mainClass>  
                        </transformer>  
                    </transformers>  
                </configuration>  
            </execution>  
        </executions>  
    </plugin>  

</plugins>