Exception in thread "main" java.lang.OutOfMemor...

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

其实这样的错误有时候并不是程序逻辑的问题(当然有可能是由于程序写的不够高效,产生的内存消耗不合理而导致),而是由于同样的作业,在数据量和数据本身发生不同时就会占据不同数量的内存空间。由于hadoop的mapreduce作业的运行机制是:在jobtracker接到客户端来的job提交后,将许多的task分配到集群中各个tasktracker上进行分块的计算,而根据代码中的逻辑可以看出,其实是在tasktracker上启了一个java进程进行运算,进程中有特定的端口和网络机制来保持map 和reduce之间的数据传输,所以,这些OOM的错误,其实就是这些java进程中报出了OOM的错误。 知道了原因以后就好办了,hadoop的mapreduce作业启动的时候,都会读取jobConf中的配置(hadoop-site.xml),只要在该配置文件中将每个task的jvm进程中的-Xmx所配置的java进程的max heap size加大,就能解决这样的问题:

<property>    <name>mapred.child.java.opts</name>    <value>-Xmx1024m</value>  </property>  PS:该选项默认是200M

新版本应该是在conf/hadoop-env.sh文件中修改。默认为1000M

有时在eclipse中叶需要修改,具体如下:

原来发现是我查询时limit后面的变量形式不对,详见java中总结的一些重点那片文章)原来只要在eclipse中,Eclipse ->run -arguments 中的VM arguments 中输入-Xms512m -Xmx1024m这个参数就可以了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木可大大

漫谈Web缓存架构

目前,Web应用的核心数据通常存放在数据库中,比如说用户信息、订单信息、交易信息等,同时,数据库和编程语言是无关的,通过SQL交互,Java、Php等语言写的程...

12430
来自专栏伦少的博客

linux ssh 免密登录

转载请务必注明原创地址为:http://dongkelun.com/2018/04/05/sshConf/

618170
来自专栏Android相关

Android Profile--Memory Monitor

在Android Studio3.0 Preview版本中,Android Profiler中提供了Memory Monitor工具来监控选中App内存变化,可...

56830
来自专栏点滴积累

geotrellis使用(二十一)自动导入数据

目录 前言 整体介绍 前台界面 后台控制 总结 一、前言        之前Geotrellis数据导入集群采用的是命令行的方式,即通过命令行提交spark任务...

41940
来自专栏java一日一条

JAVA8 JVM的变化: 元空间(Metaspace)

本文将会分享至今为至我收集的关于永久代(Permanent Generation )的替代者:元空间(Metaspace)的信息。我也会比较在执行JAVA 程序...

79730
来自专栏北京马哥教育

别人比你快?试一试这百个超有用的Linux命令行使用技巧

本文由马哥教育面授班25期学员推荐,转载自互联网,作者为lingcc,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 最近在问答社区上看...

32070
来自专栏Java技术分享

“金三银四”招聘期又要到了,快来复习JAVA题!!

由于各操作系统(windows,liunx等)支持的指令集,不是完全一致的。就会让我们的程序在不同的操作系统上要执行不同程序代码。Java开发了适用于不同操作...

1.8K130
来自专栏逻辑熊猫带你玩Python

Python | Debugger和pdb,鸡肋否?

我们知道虽然入门级编程语言最好是C和Python,但是C和Python是有这本质的不同的,那就是C语言是编译型语言,而Python是解释型语言。

27420
来自专栏为数不多的Android技巧

Android Studio你不知道的调试技巧

写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluat...

8810
来自专栏北京马哥教育

实用 Linux 命令行使用技巧集锦

最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips。将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考。 ...

37580

扫码关注云+社区

领取腾讯云代金券