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

hadoop mapper和reduce数量设置

 
阅读更多
但是通过这种方式设置map的个数,并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值,最终map的个数,还取决于其他的因素。
为了方便介绍,先来看几个名词:
block_size : hdfs的文件块大小,默认为64M,可以通过参数dfs.block.size设置
total_size : 输入文件整体的大小
input_file_num : 输入文件的个数
(1)默认map个数
如果不进行任何设置,默认的map个数是和blcok_size相关的。
default_num = total_size / block_size;
(2)期望大小
可以通过参数
mapred.map.tasks来设置程序员期望的map个数,但是这个个数只有在大于default_num的时候,才会生效。
goal_num =mapred.map.tasks;
(3)设置处理的文件大小
可以通过mapred.min.split.size 设置每个task处理的文件大小,但是这个大小只有在大于
block_size的时候才会生效。
split_size = max(
mapred.min.split.size,
block_size);split_num = total_size / split_size;
(4)计算的map个数
compute_map_num = min(split_num, max(default_num, goal_num))
除了这些配置以外,mapreduce还要遵循一些原则。 mapreduce的每一个map处理的数据是不能跨越文件的,也就是说max_map_num <= input_file_num。 所以,最终的map个数应该为:
final_map_num = min(compute_map_num, input_file_num)
经过以上的分析,在设置map个数的时候,可以简单的总结为以下几点:
(1)如果想增加map个数,则设置mapred.map.tasks 为一个较大的值。
(2)如果想减小map个数,则设置mapred.min.split.size 为一个较大的值。
分享到:
评论

相关推荐

    Hadoop Map-Reduce教程

    - **资源分配**: 合理配置 Map 和 Reduce 任务的数量,以及每个任务可用的资源量。 - **数据本地化**: 尽可能让数据处理发生在存储该数据的节点上,减少网络传输。 - **压缩技术**: 使用合适的压缩算法可以减少数据...

    hadoop中map/reduce

    配置Eclipse连接远程Hadoop集群时,需要确保集群的HDFS和MapReduce服务正常运行,并且在Eclipse中设置正确的Hadoop配置文件路径,以及集群的主机地址和端口。 在文档《Eclipse3.3_(windows7)连接远程hadoop(RedHat....

    Idea运行MapperReduce本地环境配置(win10).rar

    总的来说,配置Idea运行MapperReduce本地环境涉及安装Java环境、获取Hadoop、配置环境变量、编写MapReduce代码、打包JAR文件以及在IDEA中设置运行配置。这个过程对于Hadoop开发者来说是基础且重要的,因为它提供了...

    mapper-reduce

    在IT行业中,`Mapper-Reduce`是分布式计算领域的一个核心概念,主要被广泛应用于大数据处理框架,如Hadoop。这个框架的设计灵感来源于Google的两篇著名论文——"MapReduce: Simplified Data Processing on Large ...

    Windows平台下Hadoop的Map/Reduce开发

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

    Hadoop Map Reduce教程

    - **配置**:通过 `Configuration` 类来设置各种参数,如输入输出路径、Mapper 和 Reducer 类以及文件分割策略等。 - **自定义类**:用户可以自定义 `InputFormat` 和 `OutputFormat` 类来控制输入输出格式。 #### ...

    hadoop之map/reduce

    在Hadoop生态系统中,MapReduce是一种分布式编程模型,主要用于处理和生成大数据集。它通过将大规模数据分割成小块,然后在多台机器上并行处理这些数据块,最后将结果汇总,从而实现高效的批量数据处理。MapReduce的...

    hadoop Join代码(map join 和reduce join)

    本文将深入探讨Map JOIN和Reduce JOIN两种在Hadoop中实现JOIN的方法,并通过代码示例来阐述它们的工作原理。 1. Map JOIN: Map JOIN在Hadoop中主要应用于小表与大表的连接。小表的数据可以完全加载到内存中,而大...

    最高气温 map reduce hadoop 实例

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

    hadoop教程

    作业配置是 Map/Reduce 框架中的一个重要概念,负责配置作业的执行参数,包括输入和输出的位置、Mapper 和 Reduce 函数的实现、作业的优先级等。 Hadoop 的 JobTracker 是 Map/Reduce 框架中的一个核心组件,负责...

    hadoop eclips 的插件 和实例程序

    3. 配置Hadoop连接:在Eclipse中,通过“Window” -&gt; “Preferences” -&gt; “Hadoop Map/Reduce”路径,设置你的Hadoop集群配置,包括HDFS的NameNode地址和JobTracker地址。 二、Hadoop实例程序的创建与运行 1. ...

    Hadoop示例程序WordCount运行及详解

    总结来说,本文详细讲解了Hadoop平台上WordCount的实现,包括map-reduce模型的应用、Java编程语言的应用和Hadoop命令行工具的使用等。本文可以作为学习Hadoop的map-reduce模型和词频统计技术的参考。

    hadoop2x-eclipse-plugin

    2. 调试MapReduce任务:通过"Debug As" -&gt; "Hadoop Job",Eclipse提供了调试功能,可以在Mapper和Reducer中设置断点,逐步执行代码,查看变量状态,帮助找出问题所在。 六、优化与维护 Hadoop2x-eclipse-plugin还...

    Hadoop Reduce Join及基于MRV2 API 重写

    - **新API**:MRV2引入了新的编程接口,如`org.apache.hadoop.mapreduce.Job`,`org.apache.hadoop.mapreduce.Mapper`和`org.apache.hadoop.mapreduce.Reducer`,取代了旧的`mapred`包中的类。 为了优化Reduce Join...

    Hadoop - Hadoop Streaming

    这里 `mapred.reduce.tasks=2` 设置了 Reduce 任务的数量。 #### 处理大型文件和归档 对于大型文件或归档文件,Hadoop Streaming 提供了一些特殊的处理方式。例如,可以使用 `-archive` 选项将整个目录打包成归档...

    第02节:hadoop精讲之map reduce原理及代码.rar

    Driver类会初始化Job对象,设置输入输出路径,配置Mapper和Reducer类,以及其他的参数设置。最后,通过Job的submit()方法提交作业到Hadoop集群。 在Hadoop生态系统中,MapReduce可以与其他组件如HDFS(Hadoop ...

    提高hadoop的mapreduce job效率笔记

    通常,可以根据输入数据大小和默认块大小(通常是 128MB 或 256MB)来设置 Mapper 数量。 2. **Reducer数量的调整**: Reducer 的数量决定了结果的聚合程度和系统的总体负载。减少 Reducer 数量可以加快处理速度,...

Global site tag (gtag.js) - Google Analytics