spark 在yarn执行job时一直抱0.0.0.0:8030错误

近日新写完的spark任务放到yarn上面执行时,在yarn的slave节点中一直看到报错日志:连接不到0.0.0.0:8030 。

1 The logs are as below:
2 2014-08-11 20:10:59,795 INFO [main] org.apache.hadoop.yarn.client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8030
3 2014-08-11 20:11:01,838 INFO [main] org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8030. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

这就很奇怪了,因为slave执行任务时应该链接的是master节点的8030端口,正常情况下应该为 masterIP:8030.

按照常规思路,首先检查配置文件:yarn-site.xml 。查看里面配置的yarn.resourcemanager.scheduler.address 是否为master。

<property>
     <name>yarn.resourcemanager.hostname</name>
     <value>master1</value>
</property>
<property>
     <name>yarn.resourcemanager.scheduler.address</name>
     <value>master1:8030</value>
</property>

这一项排查过后,重启cluser,故障依旧。

继续排查,查看环境变量,看是否slave启动时是否没有加载yarn-site.xml。env|grep YARN 直接查看所有YARN的环境变量,其中可以看到YARN_CONF_DIR = HADOOP_CONF_DIR ,并且指向了正确的目录路径。

那么就很奇怪了,继续排查。如果环境方面都没有问题,写一下 hard coding.在代码里面直接写死:

1 Configuration conf = new Configuration();
2 conf.set("fs.default.name",hdfsUri);
3 conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
4 conf.set("mapreduce.framework.name", "yarn");
5 conf.set("fs.AbstractFileSystem.hdfs.impl", "org.apache.hadoop.fs.Hdfs");
6 conf.set("yarn.resourcemanager.address", yarnip+":"+8030); //设置RM 访问位置  

重新执行job,仍然报错。这下就有点晕菜了,冷静一下,目前已经排查的有:

1、配置文件:master、slave的yarn-site.xml 都正常无问题。

2、环境变量:master、slave的环境变量都正常无问题。

3、hard-coding,也无效果。

难道是框架本省的问题?

在spark根目录检索0.0.0.0,发现在spark依赖的一个包里面还真有一个匹配的:

spark-core-assembly-0.4-SNAPSHOT.jar

打开这个jar包,里面有一个yarn-default.xml 。这里面配置的是0.0.0.0. 按道理来说配置文件优先级应该是大于jar的。

改了试一下!

把0.0.0.0改成master的IP,重新打包上传,执行job。

Oh my god!

成功了!

看看时间,为了这个问题已经搞了大半个夜了。算了,先睡觉。具体问题留待周一检查。

但初步认为:应该是yarn的client再执行job时,会取一个masterIP 值,如果取不到,则默认取yarn-defalut中的值。所以关键就是找到从哪里取值。这个问题看看源码应该不是大问题。

OK,睡觉去!

spark 在yarn执行job时一直抱0.0.0.0:8030错误,布布扣,bubuko.com

时间: 2024-08-11 10:29:11

spark 在yarn执行job时一直抱0.0.0.0:8030错误的相关文章

spark on yarn提交任务时一直显示ACCEPTED

spark on yarn提交任务时一直显示ACCEPTED,过一个小时后就会出现任务失败,但在提交时shell终端显示的日志并没有报错,logs文件夹中也没有日志产生.注:spark on yarn是不需要启动spark集群的,只需要在提交任务的机器配置spark就可以了,因为任务是由hadoop来执行的,spark只负责任务的提交. 任务提交命令为 bin/spark-submit --class org.apache.spark.examples.JavaWordCount\     --

spark on yarn 执行过程介绍

执行语句: sudo spark-submit --master yarn--driver-memory 7G --executor-memory 5G --executor-cores 24 --num-executors 4--class spark.init.InitSpark /home/hxf/gogo.jar>/home/hxf/dddd.txt2>&1; 执行过程: 执行过程简介: 1 通过SecurityManager进行用户权限验证. 2 远程启动一个Actor(实际

Spark程序提交到Yarn集群时所遇异常

Exception 1:当我们将任务提交给Spark Yarn集群时,大多会出现以下异常,如下: 14/08/09 11:45:32 WARN component.AbstractLifeCycle: FAILED [email protected]:4040: java.net.BindException: Address already in use java.net.BindException: Address already in use at sun.nio.ch.Net.bind0(

Spark on Yarn年度知识整理

大数据体系结构: Spark简介 Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map 函数和reduce函数及计算模型,还提供更为丰富的算子,如filter.join.groupByKey等.是一个用来实现快速而同用的集群计算的平台. Spark将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度.RPC.序列化和压缩,并为运行在其上的上层组件提供API.其底层采用Scala这种函数式语言书写而成,并且所提供的API深度借鉴Sca

Spark(十二) -- Spark On Yarn &amp; Spark as a Service &amp; Spark On Tachyon

Spark On Yarn: 从0.6.0版本其,就可以在在Yarn上运行Spark 通过Yarn进行统一的资源管理和调度 进而可以实现不止Spark,多种处理框架并存工作的场景 部署Spark On Yarn的方式其实和Standalone是差不多的,区别就是需要在spark-env.sh中添加一些yarn的环境配置,在提交作业的时候会根据这些配置加载yarn的信息,然后将作业提交到yarn上进行管理 首先请确保已经部署了Yarn,相关操作请参考: hadoop2.2.0集群安装和配置 部署完

Apache Spark源码走读之8 -- Spark on Yarn

欢迎转载,转载请注明出处,徽沪一郎. 概要 Hadoop2中的Yarn是一个分布式计算资源的管理平台,由于其有极好的模型抽象,非常有可能成为分布式计算资源管理的事实标准.其主要职责将是分布式计算集群的管理,集群中计算资源的管理与分配. Yarn为应用程序开发提供了比较好的实现标准,Spark支持Yarn部署,本文将就Spark如何实现在Yarn平台上的部署作比较详尽的分析. Spark Standalone部署模式回顾 上图是Spark Standalone Cluster中计算模块的简要示意,

&lt;YARN&gt;&lt;MRv2&gt;&lt;Spark on YARN&gt;

MRv1 VS MRv2 MRv1: - JobTracker: 资源管理 & 作业控制- 每个作业由一个JobInProgress控制,每个任务由一个TaskInProgress控制.由于每个任务可能有多个运行实例,因此,TaskInProgress实际管理了多个运行实例TaskAttempt,每个运行实例可能运行了一个MapTask或ReduceTask.每个Map/Reduce Task会通过RPC协议将状态汇报给TaskTracker,再由TaskTracker进一步汇报给JobTrac

Spark on Yarn 架构解析

. 一.Hadoop Yarn组件介绍: 我们都知道yarn重构根本的思想,是将原有的JobTracker的两个主要功能资源管理器 和 任务调度监控 分离成单独的组件.新的架构使用全局管理所有应用程序的计算资源分配. 主要包含三个组件ResourceManager .NodeManager和ApplicationMaster以及一个核心概念Container. 1.ResourceManager(RM)  就是所谓的资源管理器,每个集群一个,实现全局的资源管理和任务调度.它可以处理客户端提交计算

Spark On YARN内存分配

本文转自:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 此文解决了Spark yarn-cluster模式运行时,内存不足的问题. Spark yarn-cluster模式运行时,注意yarn.app.mapreduce.am.resource.mb的设置.默认为1G Spark On YARN内存分配 本文主要了解Spark On YARN部署模式下的内存分配情况,因为没有