我们知道,spark中每个分片都代表着一部分数据,那么分片数量如何被确认的呢?

首先我们使用最常见的HDFS+Spark,sparkDeploy的方式来讨论,spark读取HDFS数据使用的是sparkcontext.textfile(Path, minPartitions):

1   def textFile(
2       path: String,
3       minPartitions: Int = defaultMinPartitions): RDD[String] = withScope {
4     assertNotStopped()
5     hadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text],
6       minPartitions).map(pair => pair._2.toString)
7   }

在用户指定minPartitions时,便会使用用户指定的分片数量来划分,否则使用defaultMinPartitions。那么defaultMinPartitions是怎么来的?

  def defaultMinPartitions: Int = math.min(defaultParallelism, 2)...def defaultParallelism: Int = {assertNotStopped()taskScheduler.defaultParallelism}...override def defaultParallelism(): Int = backend.defaultParallelism()...override def defaultParallelism(): Int = {conf.getInt("spark.default.parallelism", math.max(totalCoreCount.get(), 2))}

可以看到这个参数是通过SparkConf中的spark.default.parallelism指定的。如果两边都没指定,那么分片数就为2。

在内存小,分片数少而数据量较大的情况下,会产生GC error,因为内存占用过大,java的垃圾回收无法完成,所以在出现内存错误的时候不妨试试将默认的分片数量加大,或者干脆在textfile中指定。这样有助于数据的处理完成。

转载于:https://www.cnblogs.com/gaoze/p/5208970.html

spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式相关推荐

  1. 打开excel提示内存或磁盘空间不足的解决方式

    你是否会遇到打开excel时提示"内存或磁盘空间不足"的尴尬,就算重装office软件还是解决不了问题? 下面跟随我一起做,花几分钟就能完美解决,避免重装,高效.快速! 第一步,打 ...

  2. Spark弹性分布式数据集RDD:基于内存集群计算的容错抽象

    摘要 我们提出的弹性分布式数据集(RDDs),是一个让程序员在大型集群上以容错的方式执行基于内存计算的分布式内存抽象.RDDs受启发于两类使用当前计算框架处理不高效的应用:迭代算法和交互式数据挖掘工具 ...

  3. Spark开发-Spark内存溢出原因以及解决方式

    Dpark内存溢出 Spark内存溢出 堆内内存溢出 堆外内存溢出 堆内内存溢出 java.lang.OutOfMemoryError: GC overhead limit execeeded jav ...

  4. Spark源码分析之九:内存管理模型

    Spark是现在很流行的一个基于内存的分布式计算框架,既然是基于内存,那么自然而然的,内存的管理就是Spark存储管理的重中之重了.那么,Spark究竟采用什么样的内存管理模型呢?本文就为大家揭开Sp ...

  5. 第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory

    第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory 大数据的事情只需关注2个平台:spark,tensorFlow(图像, ...

  6. Spark 内存管理 spark.executor.memory /spark.memory.fraction/spark.memory.offHeap.size【堆外内存/内存管理】 钨丝计划

    spark1.6及之后: 堆内内存: spark.executor.memory 包含 spark.memory.fraction: spark.memory.fraction 包含 spark.me ...

  7. 2021年大数据Spark(十九):Spark Core的​​​​​​​共享变量

    目录 共享变量 广播变量 累加器 ​​​​​​​案例演示 共享变量 在默认情况下,当Spark在集群的多个不同节点的多个任务上并行运行一个函数时,它会把函数中涉及到的每个变量,在每个任务上都生成一个副 ...

  8. 2021年大数据Spark(十二):Spark Core的RDD详解

    目录 RDD详解 为什么需要RDD? 什么是RDD? RDD的5大特性 第一个:A list of partitions 第二个:A function for computing each split ...

  9. Spark 【数据挖掘平台介绍】 - Spark 1.1.0(看范式粒度)

    一:Spark Spark已正式申请加入Apache孵化器,从灵机一闪的实验室"电火花"成长为大数据技术平台中异军突起的新锐.本文主要讲述Spark的设计思想.Spark如其名,展 ...

  10. Spark SQL: Relational Data Processing in Spark

    Spark SQL: Relational Data Processing in Spark Spark SQL : Spark中关系型处理模块 说明: 类似这样的说明并非是原作者的内容翻译,而是本篇 ...

最新文章

  1. linux 指定库名 登录mysql_linux下对应mysql数据库的常用操作
  2. 从技术走向管理的注意要点
  3. c语言编程平均分,用C语言编程平均分数
  4. 八十八、从斐波那契数列和零一背包问题探究动态规划
  5. hdu3555 Bomb 数位dp
  6. 家里没什么菜的飞鸽传书
  7. qt 复制字符串_QT中字符串的转化与拼接
  8. php 窗体移动,窗体处理 - My Labs! PHP - PHP博客
  9. 纽约首次尝试在大桥上识别车内司机面孔 失败得很彻底
  10. 《百词斩背单词》四级词汇(3486个)-1
  11. co作为前缀的意思_co前缀是什么意思
  12. 网易云音乐(纯CSS实战)
  13. 没有这个传奇工程师,就没有今天的 Windows
  14. 支持跨平台的移动开发工具大盘点!
  15. matplotlib subplot函数介绍
  16. Java对象数组的初始化
  17. php 五行查询,五行查询,五行缺什么查询,生辰八字五行查询,金木水火土命查询表...
  18. js 设置window.open打开新窗口的title
  19. 4800余网站涉“黄”被封 新浪搜狐腾讯关栏目
  20. SQL Server 2008 R2 安装过程详解

热门文章

  1. JavaScript实现动态添加、移除元素或属性的方法分析
  2. 这也许是你不曾留意过的 Mybatis 细节 1
  3. GDB中打印pthread_internal_t的方法
  4. 修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题
  5. wxPython控件学习之TextCtrl(二)多行及样式文本框
  6. 2012年参加油田象棋比赛的几盘棋
  7. Android学习笔记--Android开发时常用控件(一)
  8. 生成n*n蛇形矩阵的算法
  9. 大规模分布式图学习框架Euler
  10. RPC与Apache Thift