文章目录
前面学习了MapReduce流程中的shuffle阶段,现在学习OutputFormat数据输出
一、OutputFormat概述
【1】OutputFormat接口实现类:OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了 OutputFormat接口。
【2】默认输出格式是TextOutputFormat
【3】自定义OutputFormat
很多情况下系统提供的不能满足开发需求,需要我们自己自定义OutputFormat实现类 例如:输出数据到MySQL/Hbase中
【4】自定义OutputFormat的步骤
-
自定义一个类继承FileOutputFormat
-
修改RecordWriter,具体改写输出数据的write()方法
二、自定义OutputFormat
过滤输入的 log 日志,包含 baidu的网站输出到baidu.log,不包含 baidu的网站输出到other.log
【1】编写mapper
package com.zhou.MapReduce.OutputFormat.Log1;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
/**
* @author zhouhao
* @date 2021/7/31 - 22:17
*/
public class LogMapper extends Mapper<LongWritable, Text,Text, NullWritable> {
@Override
protected void map(LongWritable key, Text value, Context