`
samuschen
  • 浏览: 405943 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop中每个节点map和reduce个数的设置调优

阅读更多

map red.tasktracker.map.tasks.maximum 这个是一个task tracker中可同时执行的map的最大个数,默认值为2,看《pro hadoop》:it is common to set this value to the effective number of CPUs on the node

 

把Job分割成map和reduce

合理地选择Job中 Tasks数的大小能显著的改善Hadoop执行的性能。增加task的个数会增加系统框架的开销,但同时也会增强负载均衡并降低任务失败的开销。一个极 端是1个map、1个reduce的情况,这样没有任务并行。另一个极端是1,000,000个map、1,000,000个reduce的情况,会由于 框架的开销过大而使得系统资源耗尽。

Map任务的数量

Map的数量经常 是由输入数 据中的DFS块的数量来决定的。这还经常会导致用户通过调整DFS块大小来调整map的数量。正确的map任务的并行度似乎应该是10-100 maps/节点,尽管我们对于处理cpu运算量小的任务曾经把这个数字调正到300maps每节点。Task的初始化会花费一些时间,因此最好控制每个 map任务的执行超过一分钟。

实际上控制map任务的个数是很 精妙的。mapred.map.tasks参数对于InputFormat设 定map执行的个数来说仅仅是一个提示。InputFormat的 行为应该把输入数据总的字节值分割成合适数量的片段。但是默认的情况是DFS的块大小会成为对输入数据分割片段大小的上界。一个分割大小的下界可以通过一 个mapred.min.split.size参数来设置。因此,如果你有一个大小是10TB的输入数据,并设置DFS块大小为 128M,你必须设置至少82K个map任务,除非你设置的mapred.map.tasks参数比这个数还要大。最终InputFormat 决定了map任务的个数。

Map任务的个数也能通过使用JobConf 的 conf.setNumMapTasks(int num)方法来手动地设置。这个方法能够用来增加map任务的个数,但是不能设定任务的个数小于Hadoop系统通过分割输入数据得到的值。

Reduce任务的个数

正 确的reduce任务的 个数应该是0.95或者1.75 ×(节点数 ×mapred.tasktracker.tasks.maximum参数值)。如果任务数是节点个数的0.95倍,那么所有的reduce任务能够在 map任务的输出传输结束后同时开始运行。如果任务数是节点个数的1.75倍,那么高速的节点会在完成他们第一批reduce任务计算之后开始计算第二批 reduce任务,这样的情况更有利于负载均衡。

目前reduce任务的数量 由于输出文件缓冲区大小(io.buffer.size × 2 ×reduce任务个数 << 堆大小),被限制在大约1000个左右。直到能够指定一个固定的上限后,这个问题最终会被解决。

Reduce任务的数量同时也控制着输出目录下输出文件的数量,但是通常情况下这并不重要,因为下一阶段的 map/reduce任务会把他们分割成更加小的片段。

Reduce任务也能够与 map任务一样,通过设定JobConf 的conf.setNumReduceTasks(int num)方法来增加任务个数。

分享到:
评论

相关推荐

    hadoop map-reduce turorial

    Hadoop Map-Reduce框架是设计用于处理大规模数据集(多太字节级)的软件框架,它允许在大量廉价硬件集群上(可达数千节点)进行并行处理,确保了数据处理的可靠性与容错性。此教程全面介绍了Hadoop Map-Reduce框架的...

    Map-Reduce原理体系架构和工作机制,eclipse与Hadoop集群连接

    - **TaskTracker**:每个TaskTracker是一个工作节点,负责执行具体的Map和Reduce任务。 - **DataNode**:存储实际的数据,Map-Reduce作业从这里读取输入数据并写入输出数据。 #### 四、Eclipse与Hadoop集群连接 ...

    hadoop中map/reduce

    MapReduce的设计理念源于Google的同名论文,它通过将大规模数据处理任务分解为两个阶段:Map(映射)和Reduce(化简),使得海量数据能够在多台计算机上并行处理,极大地提高了数据处理效率。 Map阶段是数据处理的...

    hadoop作业调优参数整理及原理

    - **mapred.map.tasks**和**mapred.reduce.tasks**:这两个参数分别用于设置Mapper和Reducer的数量。适当调整可以平衡集群资源的使用,提高作业并行度。 5. **Split大小** - **mapred.max.split.size**和**mapred...

    Hadoop Map-Reduce教程

    在 Hadoop Map-Reduce 中,数据处理过程主要分为两个阶段:**Map 阶段** 和 **Reduce 阶段**。 ##### Map 阶段 Map 函数接收输入数据块,并将其转换为一系列键值对。这一阶段的主要任务是对输入数据进行预处理,...

    远程调用执行Hadoop Map/Reduce

    3. **TaskTracker(Hadoop 1.x)或NodeManager(Hadoop 2.x+)**:运行在每个节点上的进程,负责执行由ResourceManager分配的任务。 4. **Map任务**:Map函数接收输入数据,将其切分为键值对,然后应用用户定义的...

    hadoop map reduce 中文教程

    每个案例都详细列出了实践步骤,包括如何编写 Map 和 Reduce 函数、如何配置 Hadoop 环境、如何运行 MapReduce 任务等。 #### 六、总结 Hadoop MapReduce 是一种非常强大的分布式数据处理工具,它通过简单的编程...

    Windows平台下Hadoop的Map/Reduce开发

    在Windows平台上进行Hadoop的Map/Reduce开发可能会比在Linux环境下多一些挑战,但通过详细的步骤和理解Map/Reduce的工作机制,开发者可以有效地克服这些困难。以下是对标题和描述中涉及知识点的详细说明: **Hadoop...

    Hadoop Map Reduce教程

    该框架将任务分解为一系列较小的任务(Map 和 Reduce),并在集群中的多台计算机上并行执行这些任务。 - **应用场景**:适用于大数据分析、搜索引擎索引构建、日志文件分析等场景。 #### 二、MapReduce 工作原理 1...

    最高气温 map reduce hadoop 实例

    总结起来,这个“最高气温 map reduce hadoop 实例”展示了如何利用Hadoop MapReduce框架处理和分析大量气温数据,寻找全局的最高气温。通过理解MapReduce的工作流程,以及如何编写和运行对应的Mapper和Reducer代码...

    Hadoop MapReduce实战手册(完整版)

    MapReduce的核心理念是将复杂的分布式计算任务分解为两个主要阶段:Map(映射)和Reduce(规约)。在Map阶段,原始数据被分割成多个小块,并在集群的不同节点上并行处理。每个Map任务处理一个数据块,将其转化为中间...

    Hadoop大数据开发与性能调优实战培训课程-Hadoop组件详解.rar

    本课程“Hadoop大数据开发与性能调优实战培训课程-Hadoop组件详解”旨在深入探讨Hadoop的主要组件及其优化策略,帮助开发者和数据工程师提升在大数据环境中的实践能力。 首先,我们要了解Hadoop的基础架构,它主要...

    hadoop,map,reduce,hdfs

    它通过两个主要阶段实现:**Map阶段**和**Reduce阶段**。MapReduce的工作流程如下: 1. **Splitting**:输入数据被分成小块,每个块称为一个split。 2. **Mapping**:每个split被传递给映射函数,映射函数对输入数据...

    hadoop map reduce hbase 一人一档

    在大数据处理领域,Hadoop MapReduce、HBase和一人一档的概念构成了一个高效、可扩展的数据管理和分析系统。本文将深入探讨这些技术及其在实际应用中的结合。 标题“hadoop map reduce hbase 一人一档”揭示了这个...

    Hadoop学习总结之四:Map-Reduce过程解析

    - **任务初始化**:JobTracker根据作业配置文件中的信息,计算出所需的MapTask和ReduceTask的数量,并为每个任务分配初始状态。 - **任务分配**:根据TaskTracker的心跳消息,JobTracker会了解各个节点的资源状况,...

    hadoop教程

    Hadoop 的 JobTracker 是 Map/Reduce 框架中的一个核心组件,负责调度和监控作业的执行,并重新执行已经失败的任务。 TaskTracker 是 Map/Reduce 框架中的一个组件,负责执行 JobTracker 指派的任务,并将执行结果...

    IT面试-Hadoop总结-云计算

    2. Map/Reduce Slots调优:Map/Reduce Slots是Hadoop中的并发度参数,通过调整这个参数可以提高Hadoop的并发处理能力。 3.Job调优:Job是Hadoop中的计算任务,可以通过调整Job的参数来提高计算效率。 四、Hadoop...

    一种基于Hadoop 的云计算平台搭建与性能

    Hadoop的第一版包括了Hadoop分布式文件系统(HDFS)和Map-Reduce计算模型,并在2005年实现了在20个节点集群上的稳定运行。随后,Doug Cutting加入Yahoo!,Apache基金会于2006年开始独立开发HDFS和Map-Reduce,...

    Hadoop单节点部署指导

    - **Reduce函数**:接收来自多个Map任务的输出数据,进行汇总处理后输出最终结果。 #### 三、实验环境搭建 - **操作系统选择**:Ubuntu,一种广泛使用的Linux发行版,易于安装和配置Hadoop环境。 - **Hadoop版本...

    Hadoop企业优化常用的调优参数.docx

    - `mapreduce.map.cpu.vcores` 和 `mapreduce.reduce.cpu.vcores` 设置每个任务可使用的最大CPU核心数,合理分配计算资源。 - `mapreduce.reduce.shuffle.parallelcopies` 控制ReduceTask从MapTask获取数据的并行...

Global site tag (gtag.js) - Google Analytics