`

hadoop的mapreduce作业中经常出现Java heap space解决方案

    博客分类:
  • Hive
 
阅读更多

我在进行两个大表的join时,任务显示成功,但Hadoop出现以下异常:

报出错误如下:

 java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

      at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:81)

      at org.apache.hadoop.io.WritableUtils.clone(WritableUtils.java:231)

      at com.***.***.ajoin.Exception.regroup(ExecReducer.java:239)

      at com.***.***.ajoin.Exception.reduce(ExecReducer.java:263)

      at com.***.***.ajoin.Exception.regroup(ExecReducer.java:1)

      at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:430)

      at org.apache.hadoop.mapred.child.main(Child.java:155)

Caused by:java.lang.reflect.InvocationTargetException

      at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknow Source)

      at sun.reflect.DelegationConstructorAccessorImp1.newInstance(DelegatingConstructorA

      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

      at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:79)

      ... 6 more

Caused by:java.lang.OutOfMemoryError:java heap space

     at java.nio.ByteBuffer.allocate(ByteBuffer.java:312)

     at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:760)

     at org.apache.hadoop.io.Text.encode(Text.java:388)

     at org.apache.hadoop.io.Text.set(Text.java:178)

     at org.apache.hadoop.io.Text.(Text.java:81)

     at org.apache.hadoop.contrib.utils.join.TaggedMapOutput.(TaggedMapOut.java:37)

     at com.***.***.ajoin.AjoinTaggedMapOutput.(AjoinTaggedMapOutput.java:15)

     ... 10 more

 

以及exception: java.lang.OutOfMemoryError: GC overhead limit exceeded
hadoop给每一个进程的空间默认是200M以上(具体不清楚,就是很小),可将这个参数调整以下,调整方法如下:

进入hadoop安装目录,conf文件下,编辑hadoop-site.xml文件,添加或修改
<property>
  <name>mapred.child.java.opts</name>
  <value>-Xmx1024m</value>
</property>
该参数设置了任务进程的jvm的使用内存,我设置为1G,可视个人情况来定。
Java has a couple of settings that help control how much memory it uses:

  • -Xmx sets the maximum memory heap size
  • -Xms sets the minimum memory heap size

这个参数只能使从修改过的服务器提交的任务占有1G空间,其他服务器提交的保持各自的状态。

修改整个机群:
我首先修改hadoop集群的配置hadoop-release/conf/hadoop-default.xml,将该配置修改为-Xmx2048m
任何同步所有节点的该配置,然后重启这个集群。
然后运行任务发现,那个task的java进程仍然是运行-Xmx200m参数下,为什么?

    原来-Xmx200m参数来至与提交job的客户端参数,因为offer提交job的机器在44.1上,在44.1上的hadoop客户端配置是-Xmx200m,这样提交的job会使用该配置。

后面将hadoop客户端配置修改为-Xmx1048m,重新运行一个job,查看hadoop集群的task进程,
已经发现进程已经运行在-Xmx1048m参数下。

分享到:
评论

相关推荐

    Hadoop mapreduce实现wordcount

    可能包括了 Java 代码示例,讲解如何创建 MapReduce 程序,并将其提交到 Hadoop 集群执行。 7. **运行与调试**: 在实际环境中,我们需要配置 Hadoop 集群,设置输入文件路径,编译并打包 WordCount 程序,最后...

    Hadoop MapReduce实现tfidf源码

    在Hadoop 2.7.7版本中,开发MapReduce程序通常需要使用Java编程语言。你需要导入Hadoop的相关库,创建Mapper和Reducer类,并实现它们的map()、reduce()方法。此外,还需要配置Job参数,如输入路径、输出路径、Mapper...

    Java操作Hadoop Mapreduce基本实践源码

    在大数据处理领域,Hadoop MapReduce是一个至关重要的组件,它为海量数据的并行处理提供了分布式计算框架。本文将深入探讨如何使用...通过深入学习和实践,开发者可以利用Hadoop MapReduce解决大数据处理中的各种问题。

    大数据 hadoop mapreduce 词频统计

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

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

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

    Hadoop MapReduce Cookbook 源码

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

    Hadoop MapReduce实战手册(完整版)

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

    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编程实例完整源码

    一个自己写的Hadoop MapReduce实例源码,网上看到不少网友在学习MapReduce编程,但是除了wordcount范例外实例比较少,故上传自己的一个。包含完整实例源码,编译配置文件,测试数据,可执行jar文件,执行脚本及操作...

    10.Hadoop MapReduce教程1

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

    Hadoop MapReduce v2 Cookbook (第二版)

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

    hadoop mapreduce helloworld 能调试

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

    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)和...

    java操作hadoop之mapreduce计算整数的最大值和最小值实战源码

    本教程将详细讲解如何使用Java编程语言操作Hadoop的MapReduce来计算整数序列中的最大值和最小值,这对于数据分析和处理任务来说是非常基础且实用的技能。 首先,我们需要理解MapReduce的工作原理。MapReduce是一种...

    Hadoop_MapReduce教程.doc

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

Global site tag (gtag.js) - Google Analytics