EMR - Pyspark 错误 - 容器以非零退出代码 13 退出。错误文件:prelaunch.err

Posted

技术标签:

【中文标题】EMR - Pyspark 错误 - 容器以非零退出代码 13 退出。错误文件:prelaunch.err【英文标题】:EMR - Pyspark error -Container exited with a non-zero exit code 13. Error file: prelaunch.err 【发布时间】:2020-12-22 16:20:22 【问题描述】:

我正在尝试在 pyspark 中执行一个类似于程序的 hello world。我已经通过 boto3 创建了一个 EMR 集群,并添加了执行我的代码的步骤。

步骤是:

            'Name': 'Run Step',
            'ActionOnFailure': 'CONTINUE',
            'HadoopJarStep': 
                'Args': [
                    'spark-submit',
                    '--master', 'yarn',
                    '--deploy-mode', 'cluster',
                  #  '--py-files',
                    's3://bucket/s3csvload.py'
                ],
                'Jar': 'command-runner.jar'
            
        

我要执行的代码是

rom pyspark.sql import *
from pyspark.sql.types import *
from pyspark.sql.functions import *
from pyspark.sql import SparkSession

spark = SparkSession.builder.master('yarn').appName('DIF1').getOrCreate()

Input_schema1 = StructType([StructField("sepal_length", DecimalType(), True),
                            StructField("sepal_width", DecimalType(), True),
                            StructField("petal_length", DecimalType(), True),
                            StructField("petal_width", DecimalType(), True),
                            StructField("species", StringType(), True)])

lookup_df = spark.read \
              .option("header", "true") \
              .option("inferSchema", "true") \
              .option("schema", Input_schema1) \
              .csv("s3://bucket/iris.csv")

lookup_df.write.csv("s3://bucket/Target")

我面临的错误是:

20/12/22 15:27:29 INFO Client: 
     client token: N/A
     diagnostics: Application application_1xxxx0_0003 failed 2 times due to AM Container for appattempt_16xxxxx10_0003_000002 exited with  exitCode: 13
Failing this attempt.Diagnostics: [2020-12-22 15:27:28.643]Exception from container-launch.
Container id: container_16xxxx10_0003_02_000001
Exit code: 13

[2020-12-22 15:27:28.644]Container exited with a non-zero exit code 13. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :

我已尝试相关链接。帮助不大。

我想我必须在 spark session builder 中进行一些更改。但是,不确定。 任何帮助表示赞赏。谢谢。

【问题讨论】:

【参考方案1】:

以下更改我的代码解决了这个问题:

Steps=[
        
            'Name': 'Run Step',
            'ActionOnFailure': 'CONTINUE',
            'HadoopJarStep': 
                'Jar': 'command-runner.jar',
                'Args': ['sudo',
                         'spark-submit',
                         '--master', 'yarn',
                         #        '--conf','spark.yarn.submit.waitAppCompletion=true'
                         '--deploy-mode', 'cluster',
                         '--py-files', 's3a://bucket/pgm.py', 's3a://bucket/pgm.py'
                         ]

            
        
    ]
spark = SparkSession.builder.appName('DIF1').getOrCreate()

【讨论】:

以上是关于EMR - Pyspark 错误 - 容器以非零退出代码 13 退出。错误文件:prelaunch.err的主要内容,如果未能解决你的问题,请参考以下文章

错误:任务“:app:transformClassesWithDexForDebug”执行失败。以非零退出值 1 结束

Firebase 函数预部署错误:命令以非零退出代码终止

以非零退出值结束

zipalign.exe'' 以非零退出值结束

Java 以非零退出值 2 完成 - Android Gradle

Firebase 部署错误以非零退出代码开头(项目路径中的空格)