`
zhousheng29
  • 浏览: 150684 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

几个JobTracker优化的配置及解决JobTracker OOM的方法

阅读更多
系统上线两年多了,最近发现任务积压严重,当然与任务越来越多有关系,但也不能放任不管。
然后开始找原因,通过看日志,发现JT占用的内存挺大,虽然我内存给的20g,但也不能吃住不放啊,导致服务器LOAD值也有点偏高,所以断定是出在JT这里。

1.mapred.jobtracker.completeuserjobs.maximum
默认100
The maximum number of complete jobs per user to keep around before delegating them to the job history.
任务被扔到历史作业文件之前完成的任务最大数,也就是说每个用户完成队列中的最大任务数达100个后,将完成的任务放入作业历史文件中。
一般我们只会关注运行中的队列,所以可以考虑降低到10,减少内存资源占用,而且完成的Job也可以从history中看到信息。

2.mapred.reduce.slowstart.completed.maps
默认0.05
Fraction of the number of maps in the job which should be complete before reduces are scheduled for the job.
reduce开始之前map应该完成的数字
这个参数控制slowstart特性的时机,默认是在5%的map任务完成后,就开始调度reduce进程启动,开始copy过程。
如果reduce资源吃紧,可以考虑提高到0.5,等部分map结束后再启动reduce,避免资源死锁状态出现。

3.mapred.jobtracker.retirejob.interval
默认24*60*60*1000=86400000 24小时
每一个Job的生存周期
我根据我们的Job情况,可以考虑改为2*60*60*1000=7200000 2小时,一般3600000 1小时也就够了

4.mapred.jobtracker.retirejob.check
默认60 * 1000 1分钟
The check runs continually while the JobTracker is running. If a job is retired it is simply removed from the in-memory list of the JobTracker (it also removes all Tasks for the job etc.).
JobTracker定期检查Job是否过期的间隔时间
默认一分钟还可以,就不需要调整了

5.mapred.job.tracker.retiredjobs.cache.size
默认1000
The number of retired job status to keep in the cache.
作业状态为已不在执行的保留在内存中的量为1000
这个1000绝对的坑爹,过期的我还放这么多在内存中干嘛,为了降低内存开销,考虑可以降低为100

5.mapred.job.tracker.handler.count
默认是10
The number of server threads for the JobTracker. This should be roughly 4% of the number of tasktracker nodes.
这个是官方文档建议
If the NameNode and JobTracker are on big hardware, set dfs.namenode.handler.count to 64 and same with mapred.job.tracker.handler.count.
这个是cloudera建议,如果服务器硬件配置好,可以考虑改为64.
一般的主节点机器配置都不会太差,我们的虽然不好,但处理64应该没问题的。
网上还找到一个公式,mapred.job.tracker.handler.count = ln(#TT)*20
考虑可以改为64

配置修改调整后,选择了一个不是很繁忙的时间点重启了JobTracker,看到服务器的负载和JobTracker的内存占用立马下来了。第二天持续观察,发现内存占用降了10多倍,Load值也降低了2~3倍,任务提交和执行快了很多,之前积压的任务需要在下午左右才能跑完的任务,在上班前都完成了,问题解决。
0
0
分享到:
评论

相关推荐

    基于Dijkstra算法分布式JobTracker节点模型通信方式的优化.pdf

    总之,分布式JobTracker节点模型和基于Dijkstra算法的通信优化策略,是为了提高Hadoop MapReduce框架的可靠性和容错能力而提出的解决方案。通过分布式和算法优化,研究人员能够在保障系统稳定运行的同时,优化节点间...

    hadoop常见问题及解决方法

    hadoop常见问题及解决方法 Hadoop是大数据处理的重要工具,但是在安装和使用Hadoop时,可能会出现一些常见的问题,这些问题可能会导致Hadoop无法正常工作,或者无法达到预期的性能。下面是Hadoop常见的问题及解决...

    JobTracker:Hadoop JobTracker OS X 菜单栏应用程序

    JobTracker Mac 菜单栏应用程序 Hadoop JobTracker 的 Mac 菜单栏应用程序界面。 它使您可以轻松访问 JobTracker 中的作业,并提供有关开始、完成和失败作业的 Growl/通知中心通知。 请参阅了解更多信息并下载二...

    MapReduceV1:Job提交流程之JobTracker端分析

    MapReduceV1实现中,主要存在3个主要的分布式进程(角色):JobClient、JobTracker和TaskTracker,我们主要是以这三个角色的实际处理活动为主线,并结合源码,分析实际处理流程。上一篇我们分析了Job提交过程中...

    win7安装hadoop及eclipse调试mapreduce的配置方法

    在Windows 7上安装Hadoop并使用Eclipse进行MapReduce调试需要一系列的配置步骤,主要包括以下几个关键环节: 1. **安装Cygwin和配置sshd服务** - Cygwin是为Hadoop提供类Linux环境的工具,而sshd服务则是Hadoop...

    hadoop配置相关的好书

    了解如何设置和优化Secondary NameNode的配置可以提高整个Hadoop集群的效率。 "jobtracker"是Hadoop MapReduce旧版中的任务调度器和资源管理器,负责作业的提交、监控和调度。每个MapReduce作业被分解为多个map任务...

    Hadoop默认的配置文件

    了解这些默认配置文件对于优化Hadoop集群性能、确保稳定运行以及解决可能出现的问题至关重要。开发者和管理员可以根据实际需求调整这些配置,以满足特定的工作负载和资源需求。同时,理解这些配置的含义也有助于深入...

    MapReduce Job本地提交过程源码跟踪及分析

    Job本地提交过程是MapReduce执行任务的一个重要环节,特别是在开发和调试阶段,理解这一过程对于优化性能和解决潜在问题至关重要。本文将深入源码层面,分析MapReduce Job在本地提交的详细步骤。 首先,我们来了解...

    Hadoop 三个配置文件的参数含义说明

    主要涉及三个核心配置文件:`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`。这些文件定义了Hadoop系统的各种参数,包括但不限于端口设置、存储策略、资源调度等。下面将详细解释这些文件中的关键参数及其...

    Hadoop安装与配置

    ### Hadoop安装与配置知识点详解 #### 一、Hadoop简介及核心组件 **Hadoop** 是Apache软件基金会旗下的一款开源分布式计算平台,其主要功能是...随着实践经验的积累,还可以进一步优化配置,提高集群的稳定性和效率。

    MapReduceV1:JobTracker处理Heartbeat流程分析

    我们基于Hadoop1.2.1源码分析MapReduceV1的处理流程。这篇文章的内容,更多地主要...JobTracker与TaskTracker之间通过org.apache.hadoop.mapred.InterTrackerProtocol协议来进行通信,TaskTracker通过该接口进行远程调

    mapreduce报错解决办法总结

    Jobtracker启动报错:解决方法:导入guava-r09-jarjar.jar org/apache/hadoop/thirdparty/guava/common/collect/LinkedListMultimap错误分析及解决方法: Intel版本hadoop因为缺少license,启动jobtracker报错:

    搭建hadoop集群的全部配置文件

    - **mapred-site.xml**:MapReduce的配置文件,用于设定JobTracker和TaskTracker的位置,以及任务执行的内存和CPU分配等。 - **yarn-site.xml**:在Hadoop 2.x版本后,MapReduce被YARN(Yet Another Resource ...

    hadoop配置文件默认配置

    在Hadoop生态系统中,配置文件是管理和优化集群性能的关键元素。本文将深入解析Hadoop的常用配置,包括HDFS(Hadoop Distributed File System)和MapReduce的端口配置,以及一些核心的默认配置参数。 首先,让我们...

    hadoop config 配置文件

    在这个主题中,我们将深入探讨Hadoop配置文件的各个方面,以及如何有效地管理和优化它们。 1. **Hadoop配置结构** Hadoop的配置主要通过XML文件进行,这些文件位于`$HADOOP_CONF_DIR`目录下,通常包括`core-site....

    centos安装配置hadoop超详细过程.docx

    完成上述步骤后,可以通过以下几个方法来验证Hadoop集群是否正确安装和配置: 1. **查看Hadoop Web界面**:通过浏览器访问`http://master-ip:50070`和`http://master-ip:8088`来查看HDFS和YARN的状态。 2. **测试...

    hadoop的配置模板

    Hadoop的核心配置主要集中在几个关键的XML文件中,这些文件包括`hadoop-env.sh`、`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`等。 ##### 2.1 `hadoop-env.sh` 该脚本用于设置Hadoop运行所需的Java环境。...

    Hadoop平台性能优化

    本文将从以下几个关键点详细解读Hadoop平台性能优化的知识点。 首先,了解Hadoop平台的性能依赖于基于MapReduce模型的应用程序。MapReduce模型将复杂的分布式任务简化为两个主要操作:Map(映射)和Reduce(归约)...

Global site tag (gtag.js) - Google Analytics