最近使用spark处理较大的数据文件,遇到了分区2G限制的问题,spark日志会报如下的日志:
WARN scheduler.TaskSetManager: Lost task 19.0 in stage 6.0 (TID 120, 10.111.32.47): java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:828)
at org.apache.spark.storage.DiskStore.getBytes(DiskStore.scala:123)
at org.apache.spark.storage.DiskStore.getBytes(DiskStore.scala:132)
at org.apache.spark.storage.BlockManager.doGetLocal(BlockManager.scala:517)
at org.apache.spark.storage.BlockManager.getLocal(BlockManager.scala:432)
at org.apache.spark.storage.BlockManager.get(BlockManager.scala:618)
at org.apache.spark.CacheManager.putInBlockManager(CacheManager.scala:146)
at org.apache.spark.CacheManager.getOrCompute(CacheManager.scala:70)

解决方法:
手动设置RDD的分区数量。当前使用的Spark默认RDD分区是18个,后来手动设置为500个,上面这个问题就迎刃而解了。可以在RDD加载后,使用RDD.repartition(numPart:Int)函数重新设置分区数量。
val data_new = data.repartition(500)

下面是一些相关的资料,有兴趣的读者可以进一步的阅读:

  • 2GB limit in spark for blocks
  • create LargeByteBuffer abstraction for eliminating 2GB limit on blocks
  • Why does Spark RDD partition has 2GB limit for HDFS
  • 抛异常的java代码:FileChannelImpl.java

spark RDD分区2GB限制(Size exceeds Integer.MAX_VALUE)相关推荐

  1. RDD分区2GB限制

    本文目的 最近使用spark处理较大的数据时,遇到了分区2G限制的问题(ken).找到了解决方法,并且在网上收集了一些资料,记录在这里,作为备忘. 问题现象 遇到这个问题时,spark日志会报如下的日 ...

  2. spark rdd分区与任务的关系

    spark rdd分区与任务关系 rdd是弹性分布式数据集,分区是对rdd数据的划分.分区之后,job并行度增大.一个分区对应一个任务.           什么是任务,任务是job的执行逻辑单元.t ...

  3. Spark RDD并行度与分区设置

    默认情况下,Spark 可以将一个作业切分多个任务后,发送给 Executor 节点并行计算,而能 够并行计算的任务数量我们称之为并行度.这个数量可以在构建 RDD 时指定.记住,这里 的并行执行的任 ...

  4. Spark算子:统计RDD分区中的元素及数量

    Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Bl ...

  5. Spark的RDD分区器

    RDD 分区器 基本介绍 Spark 目前支持Hash 分区.Range 分区和用户自定义分区.Hash 分区为当前的默认分区.分区器直接决定了RDD 中分区的个数.RDD 中每条数据经过Shuffl ...

  6. Spark RDD的分区规则详解

    Spark RDD的分区规则 一.RDD中数据来源 二.读取内存数据分区规则 三.读取文件数据分区规则 3.1 分区数量的计算规则 3.2 数据分配到哪个分区规则 一.RDD中数据来源 2个地方:本地 ...

  7. 深入理解Spark RDD——RDD分区计算器Partitioner

    在<深入理解Spark RDD--RDD依赖(构建DAG的关键)>一文,详细描述了RDD的宽窄依赖.RDD之间的依赖关系如果是Shuffle依赖,那么上游RDD该如何确定每个分区的输出将交 ...

  8. 12 Spark on RDD 分区器

    RDD 分区器 Spark 目前支持 Hash 分区和 Range 分区,和用户自定义分区.Hash 分区为当前的默认分区.分区器直接决定了 RDD 中分区的个数.RDD 中每条数据经过 Shuffl ...

  9. spark RDD编程

    RDD,也就是 弹性分布式数据集 的简称,它是spark处理的分布式元素集合. 对于RDD的操作包括: 创建RDD(从外部数据或者内存中的数据),转化RDD(利用筛选条件等),调用RDD操作求值. * ...

最新文章

  1. 使用alterMIME实现添加message footer功能
  2. R语言ggplot2可视化:使用patchwork包绘制ggplot2可视化结果的组合图(自定义图像的嵌入关系)、使用patchwork包绘制ggplot2可视化结果的组合图(自定义组合形式)
  3. 【鲁班学院】一个三年工作经验和月薪16k的java程序员应该要具备什么样的技能?...
  4. matlab的syms无法在函数中使用_EXCEL中查找匹配函数VLOOKUP使用技巧
  5. C++中函数重载分析
  6. aix 5.3 安装oracle 10g r2,AIX 5.3 安装 Oracle 10g R2(64)
  7. 5图片展示_跃进小型宣传车价格 图片 配置
  8. java 获取上下文_如何获得spring上下文的方法总结
  9. Myeclipse 10 使用之修改字体
  10. yiicms php版本,yiicms
  11. CF1063C Dwarves, Hats and Extrasensory Abilities
  12. 一个逼格很低的appium自动化测试框架
  13. 过滤器 和 拦截器 6个区别,别再傻傻分不清了
  14. 《矩阵分析》代码Ⅱ——gauss消元法,列主元素法,总体主元素法matlab实现
  15. UVALive 6437
  16. 阿里乾坤qiankun
  17. windows下安装zookeeper以及监控中心
  18. 微信 进入公众号获取地理位置
  19. 数据结构 严薇敏 顺序表的实现(增 删 改)及其使用方法详解
  20. 阿里云合作伙伴查询合作流程

热门文章

  1. R语言做图plot参数
  2. ICASSP2023 | TEA-PSE 3.0: 深度噪声抑制(DNS)竞赛个性化语音增强冠军方案解读
  3. vue3 + vite 如何使用背景图
  4. 【毕业设计】大学宿舍管理系统高校宿舍管理系统
  5. 微信开发者工具怎么导入电商小程序项目教程
  6. Win10系统下设置Go环境变量
  7. ubuntu18.04突然没有声音—伪输出/找不到音效卡
  8. 成都女孩学什么技术好
  9. 电梯仿真程序设计报告+任务书+仿真电梯MFC源程序
  10. 【软件测试】老板:你测试,我放心。测试人的成功就是不做测试?