MapReduce流程

MapReducer流程

这里写图片描述

Job:

● job.setjarbyclass(MyApp.class);//只要是在jar包中都可以写
● job.waitForCompletion 等待任务结束(开启监视机制,轮询方案)
● job.submit() 任务提交后不会等待,直接退出。

● 输入(InputFormat)—>(偏移,段落)——StringTokenizer>(偏移,句子)
● 默认Job配置处理方便处理文本文件
这里写图片描述

InputFormat:

● 验证输入文件
○ 输入的文件是否存在
○ 输入的文件能否被InputFormat处理
○ 输入的文件是文件夹的话,能否被展开
● 运行时的设置项
○ System.getenv(获取环境变量的值,不能在程序内部设置),system.setProperty(key,value)设置
■ 设置到全局的环境变量
■ 局部环境变量 export 变量名 = 值
● 生产切片,切片是逻辑的(真实文件并没有切开)
○ 总切片数== Mapper
● 提供RecordReader(Mapper通过它获得key/value),真正在读文件
● 预定义InputFormat体系
○ 默认InputFormat TextInputFormat
○ 自动处理压缩文件(不切片)
○ 默认切片
● 自定义InputFormat

Mapper

● 执行转换

Partitioner

● 对Mapper的输出根据Key进行分组,不同的组去不同的Reducer
○ 总分区数==Reducer数
○ 默认分区器 Hash
这里写图片描述

  ○ 自定义分区器

Combiner

● 用来优化从Mapper传递到Reducer的数量(减少(Key,Value))

reducer

● 包含3个步骤
○ shuffle:通过HTTP协议从各个Mapper(Partitioner)抽取属于自己的数据
○ sort:按照key进行分组,并且按照key排序(注意是将所有的可以进行排序)
○ reduce

OutputFormat

MapReduce历程
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值