配置于spark-default.conf

1. #spark.yarn.applicationMaster.waitTries  5

用于applicationMaster等待Spark master的次数以及SparkContext初始化尝试的次数 (一般不用设置)

2.spark.yarn.am.waitTime 100s

3.spark.yarn.submit.file.replication 3

应用程序上载到HDFS的复制份数

4.spark.preserve.staging.files    false

设置为true,在job结束后,将stage相关的文件保留而不是删除。 (一般无需保留,设置成false)

5.spark.yarn.scheduler.heartbeat.interal-ms  5000

Spark application master给YARN ResourceManager 发送心跳的时间间隔(ms)

6.spark.yarn.executor.memoryOverhead  1000

此为vm的开销(根据实际情况调整)

7.spark.shuffle.consolidateFiles  true

仅适用于HashShuffleMananger的实现,同样是为了解决生成过多文件的问题,采用的方式是在不同批次运行的Map任务之间重用Shuffle输出文件,也就是说合并的是不同批次的Map任务的输出数据,但是每个Map任务所需要的文件还是取决于Reduce分区的数量,因此,它并不减少同时打开的输出文件的数量,因此对内存使用量的减少并没有帮助。只是HashShuffleManager里的一个折中的解决方案。

8.spark.serializer        org.apache.spark.serializer.KryoSerializer

暂时只支持Java serializer和KryoSerializer序列化方式

9.spark.kryoserializer.buffer.max 128m

允许的最大大小的序列化值。

10.spark.storage.memoryFraction    0.3

用来调整cache所占用的内存大小。默认为0.6。如果频繁发生Full GC,可以考虑降低这个比值,这样RDD Cache可用的内存空间减少(剩下的部分Cache数据就需要通过Disk Store写到磁盘上了),会带来一定的性能损失,但是腾出更多的内存空间用于执行任务,减少Full GC发生的次数,反而可能改善程序运行的整体性能。

11.spark.sql.shuffle.partitions 800

一个partition对应着一个task,如果数据量过大,可以调整次参数来减少每个task所需消耗的内存.

12.spark.sql.autoBroadcastJoinThreshold -1

当处理join查询时广播到每个worker的表的最大字节数,当设置为-1广播功能将失效。

13.spark.speculation   false

如果设置成true,倘若有一个或多个task执行相当缓慢,就会被重启执行。(事实证明,这种做法会造成hdfs中临时文件的丢失,报找不到文件的错)

14.spark.shuffle.manager tungsten-sort

tungsten-sort是一种类似于sort的shuffle方式,shuffle data还有其他两种方式 sort、hash. (不过官网说 tungsten-sort 应用于spark 1.5版本以上)

15.spark.sql.codegen true

Spark SQL在每次执行次,先把SQL查询编译JAVA字节码。针对执行时间长的SQL查询或频繁执行的SQL查询,此配置能加快查询速度,因为它产生特殊的字节码去执行。但是针对很短的查询,可能会增加开销,因为它必须先编译每一个查询

16.spark.shuffle.spill false

如果设置成true,将会把spill的数据存入磁盘

17.spark.shuffle.consolidateFiles true

我们都知道shuffle默认情况下的文件数据为map tasks * reduce tasks,通过设置其为true,可以使spark合并shuffle的中间文件为reduce的tasks数目。

18.代码中 如果filter过滤后 会有很多空的任务或小文件产生,这时我们使用coalesce或repartition去减少RDD中partition数量。

Spark on yarn配置项说明与优化整理的更多相关文章

  1. Spark on Yarn年度知识整理

    大数据体系结构: Spark简介 Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map 函数和reduce函数及计算模型,还提供更为丰富的算子,如f ...

  2. 【原】Spark on YARN

    在YARN上运行Spark 在Spark0.6.0版本开始支持YARN模式,随后的版本在逐渐地完善. 在YARN上启动Spark 确保HADOOP_CONF_DIR或YARN_CONF_DIR属性的值 ...

  3. spark on yarn模式下内存资源管理(笔记1)

    问题:1. spark中yarn集群资源管理器,container资源容器与集群各节点node,spark应用(application),spark作业(job),阶段(stage),任务(task) ...

  4. Spark on Yarn集群搭建

    软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos ...

  5. Spark On YARN启动流程源码分析(一)

    本文主要参考: a. https://www.cnblogs.com/yy3b2007com/p/10934090.html 0. 说明 a. 关于spark源码会不定期的更新与补充 b. 对于spa ...

  6. spark on yarn UI界面详解

    参考: spark on yarn图形化任务监控利器:History-server帮你理解spark的任务执行过程 spark内存分配原理 yarn运行原理详解 task,executor,core等 ...

  7. Spark on Yarn运行时加载的jar包

    spark on yarn运行时会加载的jar包有如下: spark-submit中指定的--jars $SPARK_HOME/jars下的jar包 yarn提供的jar包 spark-submit通 ...

  8. Spark on YARN的部署

    Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on ...

  9. 配置Spark on YARN集群内存

    参考原文:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 运行文件有几个G大,默 ...

随机推荐

  1. ubuntu 双屏问题的解决方案

    ubuntu有一个很让人头疼的问题就是它默认开启双屏.只要你有两个显示器接口,即使你没有两块屏幕,它也是按照双屏幕去显示. 这就会造成一些很让人无语的问题,比如,恰好跳到你没有的那个屏幕就可能导致无法 ...

  2. activiti 任务节点 处理人设置【转】

    转自http://blog.csdn.net/qq_30739519/article/details/51225067 1.1.1. 前言 分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自 ...

  3. 4-3 yum命令

    1.常用yum命令 <1>查询 yum list #查询所有可用软件包列表(以 包名 - 版本 - yum源所在名称 格式显示) yum search 关键字 #搜索服务器上所有和关键字相 ...

  4. hihoCoder #1301 : 筑地市场 (打表+构造)

    题目大意:问含有4或者7的第k大的正数是多少. 题目分析:1~10.1~100.1~1000...之间的含有4或者7的个数可以求出,这样就可以从高位到地位依次确定这个数的每一位上的值. 代码如下: # ...

  5. Linux系统编程@多线程编程(二)

    线程的操作 线程标识 线程的ID表示数据类型:pthread_t (内核中的实现是unsigned long/unsigned int/指向pthread结构的指针(不可移植)几种类型) 1.对两个线 ...

  6. 嵌入式Linux C笔试题积累(转)

    http://blog.csdn.net/h_armony/article/details/6764811 1.   嵌入式系统中断服务子程序(ISR) 中断是嵌入式系统中重要的组成部分,这导致了很 ...

  7. Java OOM

    深入浅出JProfiler https://yq.aliyun.com/articles/276 如何排查Java内存泄露(内附各种排查工具介绍) https://yq.aliyun.com/arti ...

  8. jquery插件参数传递

    当传递的参数在函数中未定义时,不会报错,但也不会发生作用,这会造成怎么传递参数不起作用的困惑.

  9. HTTPS-透彻学习汇总

    SSL和SSH和OpenSSH,OpenSSL有什么区别 一.SSL的作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. 窃听风险(eavesdroppin ...

  10. 二十四种设计模式:外观模式(Facade Pattern)

    外观模式(Facade Pattern) 介绍为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.示例有一个Message实体类,某对象对它 ...