在 Yarn 集群上运行 Spark 作业的问题

Posted

技术标签:

【中文标题】在 Yarn 集群上运行 Spark 作业的问题【英文标题】:issue Running Spark Job on Yarn Cluster 【发布时间】:2015-04-25 17:22:16 【问题描述】:

我想在 Hadoop YARN 集群模式下运行我的 spark Job,我正在使用以下命令:

spark-submit --master yarn-cluster 
             --driver-memory 1g 
             --executor-memory 1g
             --executor-cores 1 
             --class com.dc.analysis.jobs.AggregationJob
               sparkanalitic.jar param1 param2 param3

我在下面遇到错误,请提出问题所在,命令是否正确。我正在使用 CDH 5.3.1。

Diagnostics: Application application_1424284032717_0066 failed 2 times due 
to AM Container for appattempt_1424284032717_0066_000002 exited with  
exitCode: 15 due to: Exception from container-launch.

Container id: container_1424284032717_0066_02_000001
Exit code: 15
Stack trace: ExitCodeException exitCode=15: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
    at org.apache.hadoop.util.Shell.run(Shell.java:455)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:702)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:197)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:299)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)  

Container exited with a non-zero exit code 15
.Failing this attempt.. Failing the application.
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: root.hdfs
     start time: 1424699723648
     final status: FAILED
     tracking URL: http://myhostname:8088/cluster/app/application_1424284032717_0066
     user: hdfs

2015-02-23 19:26:04 DEBUG Client - stopping client from cache: org.apache.hadoop.ipc.Client@4085f1ac
2015-02-23 19:26:04 DEBUG Utils - Shutdown hook called
2015-02-23 19:26:05 DEBUG Utils - Shutdown hook called

任何帮助将不胜感激。

【问题讨论】:

你能粘贴你的 spark-defults.conf 吗? @user392589 你找到解决方案了吗? 我在使用 stepfunction 或 lambda 调用我的胶水作业时遇到了这个问题,但是如果我直接从胶水控制台运行它会成功,有人知道为什么吗?这是我的问题:***.com/questions/66139965/… 【参考方案1】:

这可能意味着很多事情,对我们来说,由于不支持的 Java 类版本,我们会收到类似的错误消息,我们通过删除项目中引用的 Java 类来解决问题。

使用此命令查看详细的错误信息:

yarn logs -applicationId application_1424284032717_0066

【讨论】:

对于新版本,参数称为-applicationId【参考方案2】:

您应该删除代码中的“.setMaster("local")”。

【讨论】:

为什么是 `local' - 如果用户打算在集群模式下运行作业?【参考方案3】:

命令看起来正确。

我遇到的是“退出代码 15”通常表示 TableNotFound 异常。这通常意味着您提交的代码有错误。

您可以通过访问跟踪 URL 进行检查。

【讨论】:

【参考方案4】:

对我来说,通过将hive-site.xml 放在spark/conf 目录中解决了退出代码问题。

【讨论】:

【参考方案5】:

如果您在集群下运行 spark 作业,请删除 spark 配置文件中的 "spark.master":"local[*]" 行。

假设在本地电脑上运行,包含它。

玛尼

【讨论】:

以上是关于在 Yarn 集群上运行 Spark 作业的问题的主要内容,如果未能解决你的问题,请参考以下文章

配置Spark on YARN集群内存

自动设置 Dataproc 集群后 Yarn/Spark 的内存分配不正确

YARN 集群上的 PySpark 分布式处理

Yarn上常驻Spark-Streaming程序调优

Spark核心编程进阶-yarn模式下日志查看详解

132、Spark核心编程进阶之yarn模式下日志查看