MapPartition一次oom问题解决

原创 2017年09月13日 12:52:20

1、问题:每次跑到MapParititon就会停住
这里写图片描述
看起来是repartition的问题,实际出问题的是之前的mapPartition
executor表现:
这里写图片描述
出问题的代码:

val process_data = data.mapPartitions(
           rs => {
            val delLabelMapbc = delLabelMap.value
            var res = List[String]()
            for (r <- rs) {
              val line = r.split("\t")
                val checkDelKey = line(1) + '-' + line(6) + '-' + line(5)
                if (delLabelMapbc.contains(checkDelKey)) {
                  val rep = r.replaceFirst("[0-9]","-1")
                  res = rep :: res
                } else { res = r :: res}
            }
            res.iterator
          } )

这里res对象会把一整个partition拿进内存,所以会OOM;
然后请教的大牛说driverOOM原因就两点,stage过多,或者你自己定义的大数据结构,感觉可以记住。
2、改进
换成map

val process_data = data.map(
            r => {
                val delLabelMapbc = delLabelMap.value
                val seg = r.split("\t")
                val checkDelKey = seg(1) + '-' + seg(6) + '-' + seg(5)
                var rep = r
                if (delLabelMapbc.contains(checkDelKey)) {
                    rep = r.replaceFirst("[0-9]","-1")
                }
                rep
            }
        )

就可以正常运行了

什么是OOM?如何解决OOM问题!

1、什么是OOM? 程序申请内存过大,虚拟机无法满足我们,然后自杀了。这个现象通常出现在大图片的APP开发,或者需要用到很多图片的时候。通俗来讲就是我们的APP需要申请一块内存来存放图片的时候,系统认...
  • as4061218
  • as4061218
  • 2016年04月14日 15:06
  • 2879

Android如何避免OOM总结

Android如何避免OOM总结 前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有哪些指导性的规则可以参考呢?归纳下来,可以从四个方面着手,首先是减小对象的内存占用,其次...
  • ljx19900116
  • ljx19900116
  • 2015年11月25日 15:21
  • 7018

带你从头到尾梳理大图片加载OOM处理问题

我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出...
  • itguangit
  • itguangit
  • 2016年08月06日 23:11
  • 1476

记一次线上Groovy导致的OOM的问题解决过程

记一次线上Groovy导致的OOM的问题解决过程
  • jinzhencs
  • jinzhencs
  • 2017年07月06日 16:27
  • 234

feof函数多读一次问题解决方案

  • 2013年05月04日 14:06
  • 1KB
  • 下载

Android之批量加载图片OOM问题解决方案

Android之批量加载图片OOM问题解决方案 一、OOM问题出现的场景和原因   一个好的app总少不了精美的图片,所以Android开发中图片的加载...
  • w690333243
  • w690333243
  • 2017年07月04日 14:07
  • 366

LINUX内存高,触发OOM-KILLER问题解决

最近遇到两起Linux的内存问题,其一是触发了oom-killer导致系统挂 1. 首先确认该系统的版本是32位 ? #uname -a Lin...
  • richardxxg
  • richardxxg
  • 2013年04月13日 04:26
  • 986

使用ViewPager时的OOM问题解决

最近在写项目过程中遇到这样一个问题。一个用viewPager制作的APP启动引导页,其内容只有一个imageView,而且每个imageView的平均为100K左右,该项目在720P手机上运行完全正常...
  • m824673408
  • m824673408
  • 2016年08月22日 23:07
  • 120

LINUX内存高,触发OOM-KILLER问题解决

  • Aquester
  • Aquester
  • 2012年07月24日 16:18
  • 3412

Android之failed for task ':app:dexDebug'致gradle编译OOM问题解决(android-support-multidex)

当我们的业务越来越多,项目里面的方法和第三方的jar包也会越来越多,然后昨晚就遇到了下面这个问题 UNEXPECTED TOP-LEVEL EXCEPTION: at com....
  • u011068702
  • u011068702
  • 2015年10月23日 10:40
  • 1309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MapPartition一次oom问题解决
举报原因:
原因补充:

(最多只允许输入30个字)