簡體   English   中英

spark exitCode:12是什么意思?

[英]What does spark exitCode: 12 mean?

我正在嘗試運行一個用scala 11.8編寫的spark應用程序,在EMR集群版本5.3.0上使用spark 2.1。 我使用以下json配置了集群:

[
  {
    "Classification": "hadoop-env", 
    "Configurations": [
        {
            "Classification": "export", 
            "Configurations": [], 
            "Properties": {
                "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
        }
    ], 
    "Properties": {}
  }, 
  {
    "Classification": "spark-env", 
    "Configurations": [
        {
            "Classification": "export", 
            "Configurations": [], 
            "Properties": {
                "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
        }
    ], 
    "Properties": {}
  }
]

如果我試圖在客戶端模式下運行一切運行正常。 嘗試使用群集模式運行應用程序時,它失敗,狀態碼為12。

這是主日志的一部分,我在其中看到狀態代碼:

17/02/01 10:08:26 INFO TaskSetManager:完成任務79.0,階段0.0(TID 79),在293毫秒,在ip-10-234-174-231.us-west-2.compute.internal(executor 2) (78/11102)17/02/01 10:08:27 INFO YarnAllocator:司機要求總共19290名遺囑執行人。 17/02/01 10:08:27 INFO ApplicationMaster:最終應用程序狀態:FAILED,exitCode:12,(原因:從Reporter線程中拋出了1次異常。)17/02/01 10:08:27 INFO SparkContext:從shutdown hook調用stop()

更新:

作為工作的一部分,我需要從s3讀取一些數據,如下所示: sc.textFile( "s3n://stambucket/impressions/*/2017-01-0[1-9]/*/impression_recdate*)如果我只花了一天,沒有錯誤。但是9我得到了這12個退出代碼。甚至更奇怪的是考慮到在客戶端模式下運行9天就好了。

退出代碼12是linux中的標准退出代碼,用於指示內存不足。

Spark將每個執行程序進程使用的默認內存量設置為1gb。 無論群集節點/主機上的可用內存量如何,EMR都不會覆蓋此值。 一種可能的解決方法是將maximizeResourceAllocation標志設置為true。

嘗試增加ApplicationMaster的Java堆spark.yarn.am.memory = 2G或將maxExecutors設置為合理的值spark.dynamicAllocation.maxExecutors = 400

https://issues.apache.org/jira/browse/SPARK-19226

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM