对一 个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小。这个对于小集群而言,尤其重要。
相关推荐
MapReduce is the distribution system that the Hadoop MapReduce engine uses to distribute work around a cluster by working parallel on smaller data sets. It is useful in a wide range of applications, ...
修改mapper和reducer数量,如何使用combiner,什么时候该选择哪个writeable等。资料里很详细说明了。
Map/Reduce框架由一个单独的master JobTracker 和每个集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上,master监控它们的执行,重新执行已经失败的任务...
Hadoop Map-reduce Job Scheduler Resources Hadoop, Why? 数据太多了,需要能存储、快速分析Pb级数据集的系统 单机的存储、IO、内存、CPU有限,需要可扩展的集群 使用门槛低,数据分析是个庞杂的问题,MPI太复杂 ...
049 MapReduce编程模型讲解及运行PI程序和JobWebUI监控Job运行 050 如何按照【八股文】方式编写MapReduce 051 复习MapReduce编写模型和【八股文】方式编写MapReduce 052 完成MyWordCount程序编写 053 打包运行...
18/05/25 19:51:49 INFO mapreduce.Job: map 0% reduce 0% 18/05/25 19:52:20 INFO mapreduce.Job: map 100% reduce 0% 18/05/25 19:52:29 INFO mapreduce.Job: map 100% reduce 100% 18/05/25 19:52:31 INFO ...
org.apache.hadoop.mapreduce.lib.reduce org.apache.hadoop.mapreduce.security org.apache.hadoop.mapreduce.server.jobtracker org.apache.hadoop.mapreduce.server.tasktracker org.apache.hadoop.mapreduce...
如下图 " "所示: " " " "(4)设置hadoop的安装路径:依次点击window,preferences,Hadoop Map/Reduce " ",设置hadoop安装路径为/usr/local/hadoop " " " "(5)在桌面新建三个文件,如图所示: " " " " " " " "新建...
Map and Reduce Java MapReduce Scaling Out Data Flow Combiner Functions Running a Distributed MapReduce Job Hadoop Streaming Ruby Python import import import import import import org.apache.hadoop.fs...
hadoop权威指南第三版(英文版)。 Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Preface . . . . . . ....
这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。 3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格...
谈及Hadoop大家自然不会对 MapReduce感到陌生,它将计算分为两个阶段,分别为 Map 和 Reduce。MapReduce计算框架虽然借鉴了函数式编程和矢量编程的思想完成了分布式计算。但不得不承认MapReduce在矢量编程结构过于...
4.1 Map+Reduce 4.2 MapReduce架构 4.3 MapReduce数据处理 4.3.1 job与task 4.3.2 MapReduce数据处理 五、YARN(资源管理系统) 5.1 YARN架构 六、手把手搭建Hadoop环境(Linux上) 6.1 安装jdk 6.2 安装hadoop 6.3
Spark是UC Berkeley AMP lab所开源的类Hadoop ...但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
Hadoop definitive 第三版, 目录如下 1. Meet Hadoop . . . 1 Data! 1 Data Storage and Analysis 3 Comparison with Other Systems 4 RDBMS 4 Grid Computing 6 Volunteer Computing 8 A Brief History of Hadoop 9...
用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行。 目前Release版本是0.20.203.0。还不成熟,但是已经集群规模已经可以达到4000个节点,是由Yahoo!实验室中构建的。下面...
MapReduce Library将Input分成M份。这里的Input Splitter也可以是多台机器并行Split。 Master将M份Job分给Idle状态的M个worker来处理; 对于输入中的每一个, value> pair 进行Map操作,将中间结果Buffer在Memory里...
MapReduce Library将Input分成M份。这里的Input Splitter也可以是多台机器并行Split。 Master将M份Job分给Idle状态的M个worker来处理; 对于输入中的每一个, value> pair 进行Map操作,将中间结果Buffer在Memory里...
Hadoop 2 (YARN API) 中带有 Map Reduce 示例的存储库 目前的例子: 如何执行示例? 我假设你克隆了这个存储库,你用 netbeans 编译并构建了一个 jar 文件,并且你已经安装了 Hadoop 2.X。 如果之前没问题,则应...