`
qiemengdao
  • 浏览: 276065 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

hadoop的mapreduce作业中经常出现的Out Of Memory解决方案

阅读更多
常常被一些用户问到,说“为什么我的mapreduce作业总是运行到某个阶段就报出如下错误,然后失败呢?以前同一个作业没出现过的呀?”
10/01/10 12:48:01 INFO mapred.JobClient: Task Id : attempt_201001061331_0002_m_000027_0, Status : FAILED
java.lang.OutOfMemoryError: Java heap space
        at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:498)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
        at org.apache.hadoop.mapred.Child.main(Child.java:158)

其实这样的错误有时候并不是程序逻辑的问题(当然有可能是由于程序写的不够高效,产生的内存消耗不合理而导致),而是由于同样的作业,在数据量和数据本身发生不同时就会占据不同数量的内存空间。由于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
分享到:
评论

相关推荐

    Hadoop mapreduce实现wordcount

    WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的次数。在这个案例中,我们将深入探讨如何在 Hadoop 环境中使用 MapReduce 实现 WordCount。 【描述】在 Hadoop 环境中,WordCount 的...

    Hadoop MapReduce实现tfidf源码

    本篇文章将详细讲解如何利用Hadoop MapReduce实现TF-IDF(Term Frequency-Inverse Document Frequency)算法,这是一种在信息检索和文本挖掘中用于评估一个词在文档中的重要性的统计方法。 首先,我们要理解TF-IDF...

    大数据 hadoop mapreduce 词频统计

    在这个"大数据Hadoop MapReduce词频统计"的场景中,我们利用MapReduce来统计文本中的词汇出现频率。这是数据分析中一个常见的任务,有助于理解文本内容的概貌。Map阶段的任务是对输入的文本进行分词,并形成&lt;单词, 1...

    Hadoop MapReduce Cookbook 源码

    《Hadoop MapReduce Cookbook 源码》是一本专注于实战的书籍,旨在帮助读者通过具体的例子深入理解并掌握Hadoop MapReduce技术。MapReduce是大数据处理领域中的核心组件,尤其在处理大规模分布式数据集时,它的重要...

    Hadoop MapReduce作业卡死问题的解决方法.docx

    ### Hadoop MapReduce作业卡死问题的解决方法 #### 一、问题背景 在使用Hadoop MapReduce进行大规模数据处理的过程中,遇到了一个棘手的问题——部分MapReduce作业长时间卡死,严重影响了系统的运行效率和资源利用...

    Hadoop MapReduce实战手册(完整版)

    《Hadoop MapReduce实战手册》是一本专注于大数据处理技术的专著,主要针对Apache Hadoop中的MapReduce框架进行了深入的探讨。MapReduce是Hadoop生态系统中的核心组件之一,用于处理和生成大规模数据集。该书旨在...

    python hadoop mapreduce 相似用户|mapreduce.rar

    总之,这个项目旨在展示如何用Python和Hadoop MapReduce解决社交网络中的相似用户分析问题。虽然代码可能不够精致,但它提供了一个起点,让人们了解如何在实际问题中应用这两个工具。对于想要进一步学习大数据处理的...

    Hadoop MapReduce v2 Cookbook, 2nd Edition-Packt Publishing(2015) 高清完整版PDF下载

    本书通过一系列实用案例展示了如何利用Hadoop MapReduce V2解决实际问题。例如: - **日志分析**:通过MapReduce对大量日志数据进行分析,提取有价值的信息。 - **推荐系统构建**:使用MapReduce进行数据预处理和...

    基于Apriori算法的频繁项集Hadoop mapreduce

    然而,需要注意的是,由于MapReduce的通信开销,对于某些特定数据结构和算法,可能有更优化的分布式解决方案,如Spark的FP-Growth等。 总结起来,"基于Apriori算法的频繁项集Hadoop mapreduce"是一个利用大数据处理...

    Hadoop MapReduce.md

    结论: 本章介绍了 Hadoop MapReduce,同时发现它有以下缺点: ...2、有运行效率问题,MapReduce 需要将中间产生的数据保存到硬盘中,因此会有读写数据延迟问题。 3、不支持实时处理,它原始的设计就是以批处理为主。

    Hadoop MapReduce v2 Cookbook (第二版)

    Hadoop MapReduce v2 Cookbook (第二版), Packt Publishing

    hadoop mapreduce helloworld 能调试

    通过熟练掌握这些调试技巧,开发者可以更有效地定位和解决问题,从而优化 Hadoop MapReduce 应用程序的性能和效率。在实际操作中,不断实践和理解 Hadoop 生态系统将使你能够更好地驾驭这个强大的大数据处理工具。

    10.Hadoop MapReduce教程1

    Hadoop MapReduce 是 Hadoop 生态系统中的一部分,它是一种可靠的、可扩展的并行处理框架,用于处理大规模数据集。MapReduce 是一种编程模型,它将计算任务分解为两个阶段:Map 阶段和 Reduce 阶段。 Map 阶段的...

    hadoop mapreduce编程实战

    在实践中,我们可以使用 MapReduce 来解决各种大数据处理问题。以下是一些 MapReduce 项目实践: * WordCount 程序编写及代码分析 * 新建一个 MapReduce 工程 * 修改源程序 * 上传处理数据 * 运行以及结果分析 * ...

    Hadoop mapreduce 实现KMeans

    在大数据处理领域,Hadoop MapReduce 是一种广泛使用的分布式计算框架,它允许高效地处理海量数据。...如果你正在处理大量数据并需要寻找数据的内在结构,Hadoop MapReduce 结合 KMeans 算法是一个值得考虑的解决方案。

    Hadoop MapReduce v2 Cookbook.pdf

    YARN的引入则将资源管理和作业调度从MapReduce中分离出来,提高了系统的灵活性和效率。 Hadoop MapReduce v2的主要改进包括: 1. **YARN架构**:YARN将JobTracker的功能拆分为ResourceManager(RM)和...

    Hadoop MapReduce

    WordCount是MapReduce最典型的示例程序,用于统计文本文件中单词出现的次数。第一个版本提供了源代码、使用方法和逐步解释,而第二个版本在此基础上进一步展示了如何运行和展示亮点。 最后,文档是由Apache软件基金...

    Hadoop_MapReduce教程.doc

    【Hadoop MapReduce教程】 Hadoop MapReduce是一种分布式计算框架,设计用于处理和存储大量数据。这个框架使得开发者能够编写应用程序来处理PB级别的数据,即使是在由数千台廉价硬件组成的集群上。MapReduce的核心...

Global site tag (gtag.js) - Google Analytics