hadoop map reduce参数

本文详细解析了Hadoop中任务调度的相关配置参数,包括如何根据CPU数量确定map和reduce任务槽数目,以及tasktracker最大能同时运行的任务数量。

 

一个job会使用tasktracker的map任务槽数

mapred.map.tasks=cpu数目>2?cup数目*0.75:1

 

一个tasktracker最多同时运行task任务数目

mapred.tasktracker.map.tasks.maximum = cpu数目

 

一个job会使用tasktracker的reduce任务槽数

mapred.reduce.tasks = cpu数目>2?cpu数目*0.5:1

 

一个tasktracker最多同时运行reducer任务数量

mapred.tasktracker.reduce.tasks.maximum

 

 

 

### Hadoop MapReduce 工作原理 Hadoop MapReduce 是一种编程模型,用于大规模数据集的并行运算。此框架通过两个主要阶段来处理和生成大数据集:Map 阶段与 Reduce 阶段。 #### 数据分割与映射 (Map) 当启动一个 MapReduce 任务时,输入的数据会被分成若干个独立的部分,称为 InputSplits[^5]。对于每个 InputSplit,都会创建一个新的 Mapper 实例作为 Java 进程的一部分,负责处理这部分数据。Mapper 的职责是从给定的输入格式中读取数据,并将其转换成一系列键值对形式的中间结果。在这个过程中,`TextInputFormat` 类提供 `LineRecordReader` 来逐行解析文本文件中的记录。 ```java public class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> { @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); // 处理每一行逻辑... context.write(new Text("someKey"), new IntWritable(1)); } } ``` #### 归约 (Reduce) 一旦所有的 Mappers 完成了它们的工作,产生的所有中间键值对将会按照键分组发送至 Reducers。Reducer 接收到这些经过排序后的键及其关联的一系列值之后,会对每种不同的键调用 reduce 方法一次,从而实现聚合操作或其他类型的计算[^2]。 ```java public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } ``` ### 配置 Job 参数 为了使上述代码能够正常运作,在实际应用之前还需要完成一些必要的配置工作: - **定义输入/输出类型**: 使用实现了 Writable 接口的对象表示键和值,比如 `Text`, `IntWritable`. - **设定作业属性**: 创建 `JobConf` 对象以指明 job 名称、输入路径、输出路径以及所使用的 Mapper 和 Reducer 类型等信息。 ```xml <configuration> <property> <name>mapreduce.job.name</name> <value>MyWordCountJob</value> </property> <!-- 更多配置项 --> </configuration> ``` 此外,还可以根据具体需求调整资源分配策略,例如为每个 map 或者 reduce 设置所需的内存大小及 CPU 核心数[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值