mapper,reducer,OutputFormat

来源:互联网 发布:js中双引号与单引号 编辑:程序博客网 时间:2024/06/11 07:43

当完成读取之后,将切片完的数据作为Map的输入,进行Map;每个切片执行一个Map;

mapper要实现Mapper接口,在其中编写map方法;同时继承MapReduceBase类;实现mapper接口,其中有四种形式的参数,keyin,value,keyout,valueout,分别来指定输入key,value类型,输出key,value类型;

Mapper类中还提供了setup(),map(),cleanup(),run()方法,分别用于执行map之前的准备工作,在所有map任务完成后被调用,进行数据处理的主要操作;用于执行setup()-》run()-》cleanup()-》过程;前两个用于资源管理和利用;

就是通过map类实现mapper接口,即实现map()方法,通过指定输入输出格式来输入输出,其中有几种预定的mapper类如下:

IdentityMapper<key,value>原封不动的将输出为中间结果;

InverseMapper<key,value>将输入的<key,value>作为输出的<key,value> (inverse:逆)

RegexMapper<key>为每一个匹配的正则表达式生成一个(match,1)键值对;(regex:正则表达式)

TokenCountMapper<key>当输入值被标记时,生成一个(token,1)键值对;

MultithreadedMapper(key,value)多线程执行map方法;

Combin/partition

Combine主要负责将map中相同的key,value进行合并,避免重复传输造成文件冗余,但也可以作为结果reduce,其实它就是一种reduce,其默认实现为IndentityReducer类;

Partition过程是将map的运行结果发送到相应的Reduce中,因为reduce数量可能少,可以通过实现Partitioner接口来实现自己的Partition过程来提高负载均衡和分配效率;

Reduce过程实现reducer接口,实现reduce方法,同时继承MapReduceBase;

reduce类将Map的输出作为输入,重写reduce()方法;其中接口的四个参数和map相似;

reducer接收mapper传递过来的key/value对,然后根据key来排序,分组,并生成<key2,list<value2>>最后reducer根据<key2,list<value2>生成<key3,value3>;

预定义的reducer有以下几种:

IndentityReducer<key,value>将输入的<key,value>原封不动的输出为结果;

LongSumReducer<key>对长整型的value值求和;

IntSumReducer对整型的value值求和;

OutputFormat:

数据格式类型和InputFormat类型相似,多了个LazyOUtputFormat类型,延迟输出,保证第一条记录输出的时候才真正的创建文件;

getOutputCommit类管理任务输出;

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 富士变频器减速时间过电流怎么办 铺木地板地面不是很平怎么办 眼镜被铁锈烫了怎么办 平车机针头小了怎么办 mk包五金坏了怎么办 迁坟原来的棺材怎么办 新建定额项目没有措施项目怎么办 太岁符忘记烧了怎么办 穿裙子去了寺庙怎么办 美甲彩绘胶干了怎么办 美甲彩绘胶稀怎么办 彩绘胶弄衣服上怎么办 彩绘胶买来太稠怎么办 做指甲没有底胶怎么办 交定金后发现房屋不合法怎么办 买车付了定金不想要了怎么办 买车付定金后不想要怎么办 非法经营的产品至人伤亡怎么办 返修漆施工不对色怎么办 叶子板撞变形了怎么办 挤了三角区疖子怎么办 三角部位太鼓的怎么办 美利车车贷逾期怎么办? 外墙保温层坏了怎么办 双胞胎34周血压高怎么办 夏天穿凉鞋脚后跟干裂起硬皮怎么办 穿凉鞋脚后跟干裂起硬皮怎么办 夏天穿凉鞋磨脚怎么办 lv皮带黑色掉漆怎么办 黑色衣服穿在身上掉色怎么办 电信卡流量超了怎么办 移动卡流量超了怎么办 狗狗老是挠痒痒怎么办 出差同住的同事睡觉打鼾怎么办 小孩皮肤太黑了怎么办 苹果平板突然黑屏打不开怎么办 孩子认人晚上哭怎么办 主腹动脉有硬块怎么办 糖链抗原125偏高怎么办 狗长了个肿瘤怎么办 腺肌瘤糖类抗原125升高怎么办