`
豆慧
  • 浏览: 7218 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)提高hadoop的mapreduce job效率

阅读更多
hadoop 的mapreduce 的作业在运行过程中常常碰到一些这样的情 况:
每一个map或者reduce只有30-40秒钟就结束
超 大规模的job 时,通常会需要大量的map和reduce的slots 支持,但是job运行起来后,running的map和reduce并没有沾满集群的可用slots
当几乎所有的map和 reducers都在调度系统 中运行着,此时却有 一个或者两个pending的map或者reduce,一直不跑,使得job一直无法正常结束。
对一 个job的map数和reduce数的设定对一个job的运行是非常重要的,并且非常简单。以下是一些设 置这几个值的经验总结:
如果job的每个map或者 reduce task的运行时间都只有30-40秒钟,那么就减少该job的map或者reduce数,每一个task(map|reduce)的setup和加入到 调度器中进行调度,这个中间的过程可能都要花费几秒钟,所以如果每个task都非常快就跑完了,就会在task的开始和结束的时候浪费太多的时间。JVM 的reuse方式也可以解决 这个问题。
如 果某个input的文件 非常的大,比如 1TB,可以考虑将hdfs上的每个block size设大,比如设成256MB或者512MB,这样map和reduce的数据 可以减小。而且用户还可以通过命令 :hadoop distcp -Ddfs.block.size=$[256*1024*1024] /path/to/inputdata /path/to/inputdata-with-largeblocks的方式来将已经存在咋hdfs上的数据进行大块化。然后删除掉原先的文件。
只 要每个task都运行至少30-40秒钟,就可以考虑将mapper数扩大,比如集群的map slots为100个,那么就不要将一个job的mapper设成101,这样前100个map能够并行完成,而最后一个map要在前100个 mapper结束后才开始,因此在reduce开始运行前,map阶段的时间几乎就要翻倍。
尽量不要运行太多的reduce task。对大多数job来说,最好rduce的个数最多和集群中的reduce持平,或者比集群的 reduce slots小。这个对于小集群而言,尤其重要。
测试对比:
调 整运行参数( -Dmapred.max.split.size=$[16*1024*1024] ), 或者在配置文件中对将mapred.max.split.size设置成$[16*1024*1024] ,hadoop 中的wordcount任务的mapper数就会受到用户控制。当运行这种配置的任务时,每个task都会在10秒钟之内运行完,而从 jobtracker的webui上可以看到cluster的总体情况和job的情况,其中可以看到,running的map数频繁的在0-24之间波 动。整个job17分52秒完成,比使用原始配置的job的运行时间的两倍还多。

原文链接:http://sishuok.com/forum/blogPost/list/5828.html
分享到:
评论

相关推荐

    提高hadoop的mapreduce job效率笔记

    修改mapper和reducer数量,如何使用combiner,什么时候该选择哪个writeable等。资料里很详细说明了。

    Optimizing Hadoop for MapReduce(PACKT,2014)

    This book details the Hadoop MapReduce job performance optimization process. Through a number of clear and practical steps, it will help you to fully utilize your cluster’s node resources. Starting ...

    Hadoop MapReduce入门

    本文作为Hadoop MapReduce的入门篇,首先对MapReduce原理进行简单介绍,然后以一个简单的例子说明如何编写一个简单的MapReuce程序。

    Hadoop MapReduce架构

    Hadoop MapReduce 是 Hadoop 平台根据 MapReduce 原理实现的计算框架,目前已经实现了两个版本,MapReduce ...一个 Hadoop MapReduce 作业(job)的基本工作流程就是,首先把存储在 HDFS 中的输入数据集切分为若干个独

    hadoop mapreduce多表关联join多个job相互依赖传递参数

    mapreduce多表关联join多个job相互依赖传递参数

    Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

    MapReduce编程模型3.1 MapReduce编程模型概述3.1.1 MapReduce编程接口体系结构3.1.2 新旧MapReduce API比较3.2 MapReduce API基本概念3.2.1 序列化3.2.2 Reporter参数3.2.3 回调机制3.3 Java API解析3.3.1 ...

    Hadoop_HDFS和MapReduce架构浅析_郝树魁.pdf

    在简述Hadoop namenode、datanode运行模式的基础上,重点介绍了Hadoop MapReduce的工作机制,并以作业提交、作业初始化、任务分配、任务执行和任务进度更新等流程介绍了Job Client、JobTracker、TaskTracker和HDFS在...

    hadoop 1.2.1 api 最新chm 伪中文版

    然后,Hadoop的 job client提交作业(jar包/可执行程序等)和配置信息给JobTracker,后者负责分发这些软件和配置信息给slave、调度任务并监控它们的执行,同时提供状态和诊断信息给job-client。 虽然Hadoop框架是用...

    hadoop笔记

    Hadoop架构分析之集群结构分析,Hadoop架构分析之HDFS架构分析,Hadoop架构分析之NN和DN原生文档解读,Hadoop MapReduce原理之流程图.Hadoop MapReduce原理之核心类Job和ResourceManager解读.Hadoop MapReduce原理之...

    HadoopHA集群部署、YARNHA测试Job教学课件.pptx

    运行MapReduce程序测试Job 任务一 准备MapReduce输入文件 在master主节点,使用 root 用户登录,然后切换为 hadoop用户 [root@master ~]# su – hadoop --从root用户切换为hadoop身份 [hadoop@master ~]$ 创建新文件...

    CustomInputFormatCollection:Hadoop Mapreduce InputFormat 集合

    Hadoop 代码使用方式 ...hadoop jar hadoop-mapreduce-custom-inputformat-1.0-SNAPSHOT.jar org.apache.hadoop.mapreduce.sample.SmallFileWordCount -Dmapreduce.input.fileinputformat.split.maxsize=10

    Hadoop 培训笔记 及源码

    Hadoop架构分析之集群结构分析,Hadoop架构分析之HDFS架构分析,Hadoop架构分析之NN和DN原生文档解读,Hadoop MapReduce原理之流程图.Hadoop MapReduce原理之核心类Job和ResourceManager解读.Hadoop MapReduce原理之...

    IT十八掌_Hadoop阶段PPT(原理图与要点解析)

    Hadoop架构分析之集群结构分析,Hadoop架构分析之HDFS架构分析,Hadoop架构分析之NN和DN原生文档解读,Hadoop MapReduce原理之流程图.Hadoop MapReduce原理之核心类Job和ResourceManager解读.Hadoop MapReduce原理之...

    IT十八掌_Hadoop阶段学习笔记(课堂笔记与源码流程)

    Hadoop架构分析之集群结构分析,Hadoop架构分析之HDFS架构分析,Hadoop架构分析之NN和DN原生文档解读,Hadoop MapReduce原理之流程图.Hadoop MapReduce原理之核心类Job和ResourceManager解读.Hadoop MapReduce原理之...

    hadoop mapreduce

    6 MapReduce - User Interfaces.............................................................................................9 6.1 Payload....................................................................

    第一个Mapreduce程序.pdf

    本文介绍了用Java编写并运行第一个mapreduce作业的步骤及遇到的问题和解决方案。

    MapReduce Job集群提交过程源码跟踪及分析

    MapReduce Job集群提交过程源码跟踪及分析

    Hadoop大数据平台构建、测试Job教学课件.pptx

    运行MapReduce程序测试Job 任务一 准备MapReduce输入文件 在master主节点,使用 root 用户登录,然后切换为 hadoop用户 [root@master ~]# su – hadoop --从root用户切换为hadoop身份 [hadoop@master ~]$ 创建新文件...

    hadoop0.23.9离线api

    org.apache.hadoop.mapreduce.lib.jobcontrol org.apache.hadoop.mapreduce.lib.join org.apache.hadoop.mapreduce.lib.map org.apache.hadoop.mapreduce.lib.output org.apache.hadoop.mapreduce.lib.partition...

    hadoop-2.6.0-hadoop.dll-winutils.exe

     at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)  at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)  at java.security.AccessController.doPrivileged(Native Method)  at javax....

Global site tag (gtag.js) - Google Analytics