Hadoop在运行几个T数据量时报堆内存溢出
问题描述:
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数据量时报堆内存溢出相关推荐
- 关于数据导出的一些经验总结,包括excel页面负载跟堆内存溢出
数据导出的基本思路 通过查询数据库中的数据,生成excel文件 @PostMapping("/exportExcelAll")public AjaxResult exportExc ...
- php报内存溢出,php为什么运行了一段时间后才报内存溢出?
我一次性从数据库读取了10万条数据,然后循环做一些计算,循环过程中,涉及到的变量都会被下次循环覆盖掉,现在的情况是程序运行了一段时间之后,报内存溢出,为什么不是刚开始的时候就报内存溢出?按照我的理解, ...
- JVM(类加载、运行时数据区、堆内存、方法区、本地接口、执行引擎和垃圾回收)java虚拟机(JVM)的超详细知识点
JVM虚拟机 一.JVM的概述 1.为什么要学习JVM 2.虚拟机 3.JVM的作用 作用 特点 4.JVM的位置 5.JVM的分类 6.各个组成部分的用途 7.Java 代码的执行流程 8.JVM ...
- jvm性能调优实战 -59数据同步系统频繁OOM内存溢出故障排查
文章目录 背景 从现象看到本质 通过jstat来确认我们的推断 通过MAT找到占用内存最大的对象 背景 首先说一下案例背景,线上有一个数据同步系统,是专门负责从另外一个系统去同步数据的,简单来说,另外 ...
- php查询mysql返回大量数据结果集导致内存溢出的解决方法
web开发中如果遇到php查询mysql返回大量数据导致内存溢出.或者内存不够用的情况那就需要看下MySQL C API的关联,那么究竟是什么导致php查询mysql返回大量数据时内存不够用情况? 答 ...
- 大数据导出Excel导致内存溢出的解决方案
一.问题描述: 公司之前的项目中客户有一个需求是将业务数据导出到Excel表中,方便他们对账,单个导出任务数据量近100W,每当月初任务量多时,导出的项目就会内存溢出,挂掉. 二.原因分析: 1.每个 ...
- JS stacktrace--解决运行npm run serve 后报错,node内存溢出问题
电脑系统:MAC M1 拉取vue项目,运行npm run serve 后,报错如下 <--- JS stacktrace --->==== JS stack trace ======== ...
- python查找文件中某些字符串_python - Python无法从2个文件的字符串搜索中提取数据吗? - 堆栈内存溢出...
我使用此代码在2个文件中搜索和比较字符串 fsig = open('file1.txt', 'r', encoding="utf8") fresult = open('file2. ...
- c# 无法打开计算机.上的 服务,c# - C#Winform应用程序无法在其他计算机上运行(神秘的启动时) - 堆栈内存溢出...
我在Visual Studio中创建了一个winforms应用程序. 这个应用程序是一个简单的Hello World应用程序,按下时将按钮的文本更改为"Hello World". ...
- java 解析数据包_java - 如何在Java中正确解析TCP数据包? - 堆栈内存溢出
我目前有一个简单的TCP服务器,该服务器调用一个函数,并在每个新的传入数据包上以字节数组的形式将二进制TCP有效负载传递给它,解析它的正确方法是什么? 我试图通过将其切成不同的字节数组并分别进行处理来 ...
最新文章
- ORACLE RAC 11.2.0.4 for RHEL6.8 集群CRS异常导致集群命令无法使用
- 型数据保留几位小数_Python数据分析—数据框的简单操作
- C# 泛型可能导致的装箱操作陷阱
- Boost概念的function_requires() 检查库在预期的情况下会捕获错误
- 如何避免把软件装到C盘
- system(“”start calc“”)
- php 多线程处理redis,redis的多线程
- Opencv--图像颠倒的问题
- 设置mysql8的root可以远程访问
- BigDecimal 部署测试环境精度丢失
- 凸函数与简森不等式(Jensen's inequality)
- 手写原笔迹电子签名的原理及实现方法
- matlab 输入Angstrom (埃,埃米,Angstrom 或ANG或Å)
- 时序数据库介绍和使用
- access怎么做批注_怎样做批注
- 用计算机画魔方的一个面,计算机求解魔方算法.pdf
- html ace编辑器,Springboot 集成 Ace editor前端编辑器
- Windows驱动_WDDM之二
- .NET MVC 后台接受base64的上传图片
- 如何让控件在LinearLayout布局中置底显示