Spark on Yarn with HA

Spark 可以放到yarn上面去跑,这个毫无疑问。当Yarn做了HA的时候,网上会告诉你基本Spark测不需做太多的关注修改,实际不然。

除了像spark.yarn开头的相关配置外,其中一个很重要的坑是spark-yarn依赖包的Hadoop版本问题。Spark1.6.x的spark-yarn默认的Hadoop是2.2.0,而现在大部分的Hadoop2应该都升到了2.6或2.7,在没做HA的时候,这部分yarn api是兼容的,然而yarn做了HA后,依赖旧版本的yarn api不会去自己找 yarn.resourcemanager.hostname.xx 这样的ha配置,而是只会找yarn.resourcemanager.hostname ,导致无法适应Yarn RM的HA切换。

如果hostname是standby,则会一直Connecting to ResourceManager 然后Retrying connect to server 很多次,一直卡着。

实际处理也很简单从spark-yarn中exclude掉yarn相关的依赖,在pom.xml外层手动依赖对应Hadoop版本的yarn组件即可。

时间: 2024-11-05 15:48:44

Spark on Yarn with HA的相关文章

Oozie Spark on YARN requirement failed

软件环境: CDH:5.7.3:Oozie:4.1.0-CDH5.7.3 : Spark:1.6.0-cdh5.7.3-hadoop2.6.0-cdh5.7.3 : Hadoop:hadoop2.6.0-cdh5.7.3(HDFS 采用HA方式): 问题描述: 在使用CDH5.7.3版本的时候,发起一个Oozie工作流,该工作流使用Spark On YARN的方式提交一个Spark程序,但是在Oozie中该程序运行失败,同时找到YARN监控中对应的任务,发现出现下面的错误(该Spark任务如果使

Spark(十二) -- Spark On Yarn & Spark as a Service & 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集群安装和配置 部署完

Spark on Yarn年度知识整理

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

Spark on Yarn

YARN是什么 YARN在hadoop生态系统中的位置 YARN产生的背景 YARN的基本架构 ResourceManager NodeManager ApplicationMaster container Spark On Yarn 配置和部署 编译时包含yarn 基本配置 在没有配置的前提下试下启动spark-shell 可以看到启动没问题 这里问题就来了!!! 下面我们配上来看看 可以看到报错了!!! 应该是资源不足导致的 先重启一下各个进程 $SPARK_HOME/bin/spark-s

Spark On YARN内存和CPU分配

本篇博客参考:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/ 软件版本: CDH:5.7.2,JDK:1.7: 问题描述: 在使用Spark On YARN时(无论是Client模式或者是Cluster模式,当然下面会有这种模式的对比区别),可以添加诸如: --executor-memory 8G --executor-cores 5 --num-executors 20 等等这样的

yarn.resourcemanager.ha.id设置

resourcemanager启动报错,其中一个启动成功,另一个启动报8088端口被成功启动的rm占用 2016-11-18 17:08:49,478 INFO org.apache.zookeeper.ZooKeeper: Client environment:java.library.path=/usr/lib/hadoop/lib/native 2016-11-18 17:08:49,478 INFO org.apache.zookeeper.ZooKeeper: Client envir

Spark on Yarn彻底解密(DT大数据梦工厂)

内容: 1.Hadoop Yarn的工作流程解密: 2.Spark on Yarn两种运行模式实战: 3.Spark on Yarn工作流程解密: 4.Spark on Yarn工作内幕解密: 5.Spark on Yarn最佳实践: 资源管理框架Yarn Mesos是分布式集群的资源管理框架,和大数据没关系,但是可以管理大数据的资源 ==========Hadoop Yarn解析============ 1.Yarn是Hadoop推出的资源管理器,是负责分布式(大数据)集群计算的资源管理的,负

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 [ma

配置Spark on YARN集群内存

参考原文:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 运行文件有几个G大,默认的spark的内存设置就不行了,需要重新设置.还没有看Spark源码,只能先搜搜相关的博客解决问题. 按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client 模式. yarn-cluster模式.当在YARN上运行Spark作业,每个Sp