网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

十四、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任务的输入,这便是一种好的输出格式,因为它的格式紧凑,很容易被压缩。


名称栏目:十四、MapReduce--OutputFormat和RecordWriter抽象类
网页URL:http://bjjierui.cn/article/ggssic.html

其他资讯