spark调优汇总(spark调优最佳配置)

技术如何理解spark调优中的高层通用调优如何理解spark调优中的高层通用调优,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一,并行度集群

对于如何理解spark调优中的高级通用调优,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

一,并行度

除非您将每个操作的并行度设置得足够高,否则集群不会得到充分利用。Spark会根据文件大小自动设置地图数量,是否可以分割(输入格式后面会详细说明,各种输入地图数量的确定会详细说明)。对于分布式reduce操作,如groupbykey和reducebykey,默认情况下,它使用分区数量最多的父RDD的分区数量来确定reduce的数量。您也可以通过设置spark.default.parallelism来更改默认值。建议的值是每个CPU执行2-3个任务。

二,Reduce任务的内存使用

有时候,内存溢出不是因为你的RDD不适合内存,而是因为你的一个任务的工作集太大了。例如,使用groupbykey时,缩减任务数据集太大。Spark的shuffle操作(按键排序、按键分组、按键减少、连接等)将构建一个哈希表,每个任务将执行一个分组的数据,这个数据通常非常大。最简单的改进方法是增加并行性,使每个任务的输入变小。Spark可以高效地支持短至200毫秒的任务,因为Executor的JVM被重用,可以降低启动成本,所以可以安全地增加并行度,超过你的集群核心数量。

三,广播变量

使用spark的广播功能可以大大减少每个序列化任务的大小以及在集群中执行作业的成本。如果您在任务中使用大型对象,例如静态表,请考虑将其声明为广播变量。在驱动程序节点,spark会打印出每个任务的序列化大小,这样你就可以通过查看任务的大小来判断你的任务是否过大。通常,如果任务的大小超过20KB,就值得调优。

如何理解spark调优中的高层通用调优

四,数据本地性

数据的位置可能会对Spark作业产生重大影响。如果数据和对其进行操作的代码在一起,计算通常会很快。但是如果代码和数据分离,其中一个必须移动。通常,序列化的代码会移动到数据所在的位置,因为数据通常比代码大得多。Spark构建调度计划的原则是数据局部性。

局部性是数据离处理它的代码有多远。根据数据和代码的当前位置,数据局部性级别。从最近到最远的顺序如下:

1,PROCESS_LOCAL

并且数据和代码在同一个JVM中,这是最好的数据局部性。

2,NODE_LOCAL

数据和代码在同一个节点。例如,数据位于同一节点的HDFS或统一节点的执行器上。因为数据必须在多个进程之间移动,所以它比PROCESS_LOCAL稍慢。

3,NO_PREF

数据可以在没有数据局部性的情况下从任何地方快速访问。

4,RACK_LOCAL

数据和代码在同一个机架上。数据位于同一机架中的不同服务器上,因此需要通过网络发送,通常是通过单个交换机。

5,ANY

数据在网络的其他地方,而不是在同一个机架中。

Spark倾向于根据最高的数据局部性来安排任务,但这通常是不可能的。当任何空闲执行器上没有未处理的数据时,Spark将切换到较低的数据局部性。在这种情况下,有两种选择:

1)、等待CPU空闲,然后在同一台服务器上启动任务。

2)、在数据需要迁移的较远的地方立即开始新的任务。

Spark典型的处理策略是等待繁忙的CPU释放,时间很短。一旦超时发生,数据将被移动到空闲的中央处理器来执行任务。每个级别之间的回退等待超时可以单独配置,也可以全部在一个参数中配置。如果任务很长并且数据局部性很差,可以适当调整与Spark.locatity超时相关的配置。具体配置如下:

属性

系统默认值

意义

火花。地点。等等

3s

超时,放弃等待数据局部性较低的新任务。

spark . location . wait . node

火花。地点。等等

节点本地等待超时

spark . location . wait . process

火花。地点。等等

进程本地等待超时

spark . location .等等. rack

火花。地点。等等

机架本地等待超时

主要调音是序列化和内存调优.

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/149257.html

(0)

相关推荐

  • aabb形式,aabb形式有哪些词语

    技术aabb形式,aabb形式有哪些词语安安稳稳aabb形式、巴巴急、巴巴劫劫、巴巴结结、彬彬济济 半半拉拉、半半路路、炳炳烺烺、波波碌碌、病病歪歪 白白朱朱、啛啛喳喳、抽抽搭搭、吹吹打打、出出律律 楚楚谡谡、抽抽噎噎、

    生活 2021年10月26日
  • Android性能测试关注的指标有哪些

    技术Android性能测试关注的指标有哪些本篇内容介绍了“Android性能测试关注的指标有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月10日
  • SQL调优怎么生成海量测试数据

    技术SQL调优怎么生成海量测试数据小编给大家分享一下SQL调优怎么生成海量测试数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景,如果出现

    攻略 2021年11月23日
  • oracle提供哪几种分区表的特点(oracle分区表分区备份有哪些方法)

    技术ORACLE分区表日常维护方法是什么这篇文章主要讲解了“ORACLE分区表日常维护方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ORACLE分区表日常维护方

    攻略 2021年12月22日
  • Java学习笔记六:Java最基础

    技术Java学习笔记六:Java最基础 Java学习笔记六:Java最基础1. 标志符
    命名注意:只可以字母(A-Z或a-z)、美元符($)、下划线(_)开始;
    首字符之后可以是字母、美元符、下划线或数

    礼包 2021年10月19日
  • 一语成,历史上有哪些一语成谶的事

    技术一语成,历史上有哪些一语成谶的事隶属于昆明陆军总司令部的第四方面军组建于1945年3月5日一语成,仅仅一个多月后,方面军司令官王耀武就指挥所部在湘西大破日寇,一举取得雪峰山大捷,8月在芷江出席日军投降的草签仪式,不久

    生活 2021年10月30日