1. 程式人生 > >spark-On-Yarn報錯application has already ended! It might have been killed or

spark-On-Yarn報錯application has already ended! It might have been killed or

如果使用spark on yarn 提交任務,一般情況,都使用cluster模式,該模式,Driver執行在叢集中,其實就是執行在ApplicattionMaster這個程序成,如果該程序出現問題,yarn會重啟ApplicattionMaster(Driver),SparkSubmit的功能就是為了提交任務。

 

如果使用交換式的命令列,必須用Client模式,該模式,Driver是執行在SparkSubmit程序中,因為收集的結果,必須返回到命令列(即啟動命令的那臺機器上),該模式,一般測試,或者執行spark-shellspark-sql這個互動式命令列是使用

 

注意:如果你配置spark-on-yarn的client模式,其實會報錯。

修改所有yarn節點的yarn-site.xml,在該檔案中新增如下配置

 

<property>

    <name>yarn.nodemanager.pmem-check-enabled</name>

    <value>false</value>

</property>

 

<property>

    <name>yarn.nodemanager.vmem-check-enabled</name>

    <value>false</value>

配置完成之後,重啟namenode跟RM,然後在跑程式 ok