Spark的基础介绍和操作调优

发布时间:2021-09-14 01:23:54 作者:chen
来源:亿速云 阅读:115

本篇内容介绍了“Spark的基础介绍和操作调优”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Spark 基础介绍

在讨论spark调优之前,先看看spark里的一些概念。

action

Action是得到非RDD结果的RDD操作。如Spark中有如下常见action操作: reduce, collect, count, first, take, takeSample, countByKey, saveAsTextFile

job

每个spark的action会被分解成一个job。

stage

一个job会被分成多组task,每组task称为一个stage。stage的划分界限为以下两种task之一:

partition

RDD 包含固定数目的 partition, 每个 partiton 包含若干的 record。

narrow tansformation (比如 map 和 filter)返回的 RDD,一个 partition 中的 record 只需要从父 RDD 对应的 partition 中的 record 计算得到。同样narrow transformation不会改变partition的个数。

task

被送到executor上执行的工作单元; 一个task只能做一个stage中的一个partition的数据。 Spark的基础介绍和操作调优

操作调优

aggregateByKey: Aggregate the values of each key, using given combine functions and a neutral "zero value". This function can return a different result type, U, than the type of the values in this RDD, V. Thus, we need one operation for merging a V into a U and one operation for merging two U's, as in scala.TraversableOnce. The former operation is used for merging values within a partition, and the latter is used for merging values between partitions. To avoid memory allocation, both of these functions are allowed to modify and return their first argument instead of creating a new U.

scala> val broadcastVar = sc.broadcast(Array(1, 2, 3))
broadcastVar: org.apache.spark.broadcast.Broadcast[Array[Int]] = Broadcast(0)

scala> broadcastVar.value
res0: Array[Int] = Array(1, 2, 3)

资源调优

spark中的资源可以简单归结为CPU和内存,而以下的参数会影响内存和CPU的使用。

HDFS client 在大量并发线程是时性能问题。大概的估计是每个 executor 中最多5个并行的 task 就可以占满的写入带宽。

我naive的认为应该这样调整:

  1. core = min(5,cpu核数);

  2. executor = instance数 * cpu核数 / core

  3. 平均每instance的executor个数决定executor.memory,从而决定shuffle.memory和storage.memory; Spark的基础介绍和操作调优

  4. 估计总数据量,即最大的shuffle时的数据大小(spark driver运行记录中会有shuffle size);

  5. 用4的结果除以3得到partition数,如果很小,把partition设成和(executor*core)的若干倍.

“Spark的基础介绍和操作调优”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 六、spark--spark调优
  2. Spark的安装和基础编程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spark

上一篇:iOS图片压缩、滤镜、剪切及渲染的方法

下一篇:hadoop下怎么计算MapReduce过程中需要的缓冲区大小

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》