spark RDD分区2GB限制(Size exceeds Integer.MAX_VALUE)
最近使用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)相关推荐
- RDD分区2GB限制
本文目的 最近使用spark处理较大的数据时,遇到了分区2G限制的问题(ken).找到了解决方法,并且在网上收集了一些资料,记录在这里,作为备忘. 问题现象 遇到这个问题时,spark日志会报如下的日 ...
- spark rdd分区与任务的关系
spark rdd分区与任务关系 rdd是弹性分布式数据集,分区是对rdd数据的划分.分区之后,job并行度增大.一个分区对应一个任务. 什么是任务,任务是job的执行逻辑单元.t ...
- Spark RDD并行度与分区设置
默认情况下,Spark 可以将一个作业切分多个任务后,发送给 Executor 节点并行计算,而能 够并行计算的任务数量我们称之为并行度.这个数量可以在构建 RDD 时指定.记住,这里 的并行执行的任 ...
- Spark算子:统计RDD分区中的元素及数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Bl ...
- Spark的RDD分区器
RDD 分区器 基本介绍 Spark 目前支持Hash 分区.Range 分区和用户自定义分区.Hash 分区为当前的默认分区.分区器直接决定了RDD 中分区的个数.RDD 中每条数据经过Shuffl ...
- Spark RDD的分区规则详解
Spark RDD的分区规则 一.RDD中数据来源 二.读取内存数据分区规则 三.读取文件数据分区规则 3.1 分区数量的计算规则 3.2 数据分配到哪个分区规则 一.RDD中数据来源 2个地方:本地 ...
- 深入理解Spark RDD——RDD分区计算器Partitioner
在<深入理解Spark RDD--RDD依赖(构建DAG的关键)>一文,详细描述了RDD的宽窄依赖.RDD之间的依赖关系如果是Shuffle依赖,那么上游RDD该如何确定每个分区的输出将交 ...
- 12 Spark on RDD 分区器
RDD 分区器 Spark 目前支持 Hash 分区和 Range 分区,和用户自定义分区.Hash 分区为当前的默认分区.分区器直接决定了 RDD 中分区的个数.RDD 中每条数据经过 Shuffl ...
- spark RDD编程
RDD,也就是 弹性分布式数据集 的简称,它是spark处理的分布式元素集合. 对于RDD的操作包括: 创建RDD(从外部数据或者内存中的数据),转化RDD(利用筛选条件等),调用RDD操作求值. * ...
最新文章
- 使用alterMIME实现添加message footer功能
- R语言ggplot2可视化:使用patchwork包绘制ggplot2可视化结果的组合图(自定义图像的嵌入关系)、使用patchwork包绘制ggplot2可视化结果的组合图(自定义组合形式)
- 【鲁班学院】一个三年工作经验和月薪16k的java程序员应该要具备什么样的技能?...
- matlab的syms无法在函数中使用_EXCEL中查找匹配函数VLOOKUP使用技巧
- C++中函数重载分析
- aix 5.3 安装oracle 10g r2,AIX 5.3 安装 Oracle 10g R2(64)
- 5图片展示_跃进小型宣传车价格 图片 配置
- java 获取上下文_如何获得spring上下文的方法总结
- Myeclipse 10 使用之修改字体
- yiicms php版本,yiicms
- CF1063C Dwarves, Hats and Extrasensory Abilities
- 一个逼格很低的appium自动化测试框架
- 过滤器 和 拦截器 6个区别,别再傻傻分不清了
- 《矩阵分析》代码Ⅱ——gauss消元法,列主元素法,总体主元素法matlab实现
- UVALive 6437
- 阿里乾坤qiankun
- windows下安装zookeeper以及监控中心
- 微信 进入公众号获取地理位置
- 数据结构 严薇敏 顺序表的实现(增 删 改)及其使用方法详解
- 阿里云合作伙伴查询合作流程