问题描述:
   Hadoop提交作业,运行几个T数据量,由于数据量巨大,造成HADOOP频频的报出JAVA堆内存溢出。
错误日志:
   
Error: java.lang.OutOfMemoryError: Java heap spaceat sun.net.www.http.ChunkedInputStream.processRaw(ChunkedInputStream.java:354)at sun.net.www.http.ChunkedInputStream.readAheadNonBlocking(ChunkedInputStream.java:511)at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:602)at sun.net.www.http.ChunkedInputStream.hurry(ChunkedInputStream.java:759)at sun.net.www.http.ChunkedInputStream.closeUnderlying(ChunkedInputStream.java:216)at sun.net.www.http.ChunkedInputStream.close(ChunkedInputStream.java:740)at java.io.FilterInputStream.close(FilterInputStream.java:172)at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(HttpURLConnection.java:2456)at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$ShuffleRamManager.reserve(ReduceTask.java:1052)at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.shuffleInMemory(ReduceTask.java:1580)at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.getMapOutput(ReduceTask.java:1472)at org.apache
解决方案:
    调整hadoop-env.sh文件,增大datanode节点的JVM内存:export HADOOP_DATANODE_OPTS="-Xmx26214m -Xms256m -Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS"将所有配置文件统一,重新启动集群。问题还是依旧出现“Java heap space ”
调整mapred-site.xml文件,增加JVM的重用次数:<property><name>mapred.job.reuse.jvm.num.tasks</name><value>50</value></property>
将所有配置文件统一,重新启动集群。
设置了jvm复用,即一个job内,多个task共享jvm,避免多次启动jvm,浪费资源和时间。提高运行效率,减少JOB执行的时间。 

Hadoop在运行几个T数据量时报堆内存溢出相关推荐

  1. 关于数据导出的一些经验总结,包括excel页面负载跟堆内存溢出

    数据导出的基本思路 通过查询数据库中的数据,生成excel文件 @PostMapping("/exportExcelAll")public AjaxResult exportExc ...

  2. php报内存溢出,php为什么运行了一段时间后才报内存溢出?

    我一次性从数据库读取了10万条数据,然后循环做一些计算,循环过程中,涉及到的变量都会被下次循环覆盖掉,现在的情况是程序运行了一段时间之后,报内存溢出,为什么不是刚开始的时候就报内存溢出?按照我的理解, ...

  3. JVM(类加载、运行时数据区、堆内存、方法区、本地接口、执行引擎和垃圾回收)java虚拟机(JVM)的超详细知识点

    JVM虚拟机 一.JVM的概述 1.为什么要学习JVM 2.虚拟机 3.JVM的作用 作用 特点 4.JVM的位置 5.JVM的分类 6.各个组成部分的用途 7.Java 代码的执行流程 8.JVM ...

  4. jvm性能调优实战 -59数据同步系统频繁OOM内存溢出故障排查

    文章目录 背景 从现象看到本质 通过jstat来确认我们的推断 通过MAT找到占用内存最大的对象 背景 首先说一下案例背景,线上有一个数据同步系统,是专门负责从另外一个系统去同步数据的,简单来说,另外 ...

  5. php查询mysql返回大量数据结果集导致内存溢出的解决方法

    web开发中如果遇到php查询mysql返回大量数据导致内存溢出.或者内存不够用的情况那就需要看下MySQL C API的关联,那么究竟是什么导致php查询mysql返回大量数据时内存不够用情况? 答 ...

  6. 大数据导出Excel导致内存溢出的解决方案

    一.问题描述: 公司之前的项目中客户有一个需求是将业务数据导出到Excel表中,方便他们对账,单个导出任务数据量近100W,每当月初任务量多时,导出的项目就会内存溢出,挂掉. 二.原因分析: 1.每个 ...

  7. JS stacktrace--解决运行npm run serve 后报错,node内存溢出问题

    电脑系统:MAC M1 拉取vue项目,运行npm run serve 后,报错如下 <--- JS stacktrace --->==== JS stack trace ======== ...

  8. python查找文件中某些字符串_python - Python无法从2个文件的字符串搜索中提取数据吗? - 堆栈内存溢出...

    我使用此代码在2个文件中搜索和比较字符串 fsig = open('file1.txt', 'r', encoding="utf8") fresult = open('file2. ...

  9. c# 无法打开计算机.上的 服务,c# - C#Winform应用程序无法在其他计算机上运行(神秘的启动时) - 堆栈内存溢出...

    我在Visual Studio中创建了一个winforms应用程序. 这个应用程序是一个简单的Hello World应用程序,按下时将按钮的文本更改为"Hello World". ...

  10. java 解析数据包_java - 如何在Java中正确解析TCP数据包? - 堆栈内存溢出

    我目前有一个简单的TCP服务器,该服务器调用一个函数,并在每个新的传入数据包上以字节数组的形式将二进制TCP有效负载传递给它,解析它的正确方法是什么? 我试图通过将其切成不同的字节数组并分别进行处理来 ...

最新文章

  1. ORACLE RAC 11.2.0.4 for RHEL6.8 集群CRS异常导致集群命令无法使用
  2. 型数据保留几位小数_Python数据分析—数据框的简单操作
  3. C# 泛型可能导致的装箱操作陷阱
  4. Boost概念的function_requires() 检查库在预期的情况下会捕获错误
  5. 如何避免把软件装到C盘
  6. system(“”start calc“”)
  7. php 多线程处理redis,redis的多线程
  8. Opencv--图像颠倒的问题
  9. 设置mysql8的root可以远程访问
  10. BigDecimal 部署测试环境精度丢失
  11. 凸函数与简森不等式(Jensen's inequality)
  12. 手写原笔迹电子签名的原理及实现方法
  13. matlab 输入Angstrom (埃,埃米,Angstrom 或ANG或Å)
  14. 时序数据库介绍和使用
  15. access怎么做批注_怎样做批注
  16. 用计算机画魔方的一个面,计算机求解魔方算法.pdf
  17. html ace编辑器,Springboot 集成 Ace editor前端编辑器
  18. Windows驱动_WDDM之二
  19. .NET MVC 后台接受base64的上传图片
  20. 如何让控件在LinearLayout布局中置底显示

热门文章

  1. leetcode 979. 在二叉树中分配硬币
  2. 二进制部署Kubernetes-v1.14.1集群
  3. leetcode笔记:Validate Binary Search Tree
  4. selenium RC优化代码3
  5. Yii2如何用migrate快速建表
  6. ORACLE lag,lead
  7. java实现url转码、解码
  8. 一段经典的 Java 风格程序 ( 类,包 )
  9. Spring Cloud学习系列第三篇【服务容错保护】
  10. HDU 4417 Super Mario 主席树