十四、MapReduce--OutputFormat和RecordWriter抽象类
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,一、基本原理 reduce执行完毕之后,每个reduce都会将KV输出到一个文件中。那么KV输出到文件中时是以什么格式输出的呢?这就涉及到两个抽象类:OutputFormat和RecordWrite
千家信息网最后更新 2026年11月03日十四、MapReduce--OutputFormat和RecordWriter抽象类
一、基本原理
reduce执行完毕之后,每个reduce都会将KV输出到一个文件中。那么KV输出到文件中时是以什么格式输出的呢?这就涉及到两个抽象类:OutputFormat和RecordWriter。
1、OutputFormat
public abstract class OutputFormat { public OutputFormat() { }public abstract RecordWriter getRecordWriter(TaskAttemptContext var1) throws IOException, InterruptedException; public abstract void checkOutputSpecs(JobContext var1) throws IOException, InterruptedException; public abstract OutputCommitter getOutputCommitter(TaskAttemptContext var1) throws IOException, InterruptedException;} 其实主要就是创建RecordWriter对象。
2、RecordWriter
public abstract class RecordWriter { public RecordWriter() { } //将KV写入到输出流 public abstract void write(K var1, V var2) throws IOException, InterruptedException; //关闭流 public abstract void close(TaskAttemptContext var1) throws IOException, InterruptedException;} 主要就是write方法,将KV写入到文件中。
二、常用的OutputFormat实现类
1、TextOutputFormat
继承 FileOutputFormat,返回的RecordWriter是TextOutputFormat.LineRecordWriter。将每个KV转换为文本的每一行。可以定义key和value在文本中的分隔符,默认是"\t"。
2、SequenceFileOutputFormat
同样继承于FileOutputFormat,返回的RecordWriter是一个匿名内部类,直接将所有的KV以追加的方式写入到文本中,不另外分行(除非原先数据中带有换行)。
SequenceFileOutputFormat将它的输出写为一个顺序文件。如果输出需要作为后续 MapReduce任务的输入,这便是一种好的输出格式,因为它的格式紧凑,很容易被压缩。
输出
文件
文本
格式
就是
紧凑
一行
两个
任务
分行
分隔符
原理
对象
常用
数据
方式
方法
顺序
中带
中时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网科技公司简介
重庆互联网络科技
互联网金融公司科技
智网互联网科技
奇酷互联网科技公司
无线互联网科技
北京禾田雨橡互联网科技
以后互联网后是啥科技
佳云科技和互联网广告
花神(南京)互联网科技有限公司
杭州壁岐互联网科技有限公司
成都互联网科技公司工作好不好
济南有互联网科技公司吗
中和天地互联网科技有限公司
为客找房互联网科技公司怎么样
从那以后互联网科技有限公司
全球科技与互联网公司市值变化
杭州科技互联网公司有哪些
高科技和互联网的现代国家
科技平台互联网
互联网科技财经
成都互联网科技公司
凡科互联网科技
互联网金融 科技创新
广西拼得多互联网科技有限公司
互联网 科技馆
江苏互联网科技小贷
互联网领先科技活动
好易买互联网科技