`
ghost_face
  • 浏览: 54291 次
社区版块
存档分类
最新评论

《Hadoop权威指南》——第七章MapReduce的类型与格式

阅读更多

输入

  • FileInputFormat

FileInputFormat是所有使用文件作为数据源的InputFormat实现的基类。

1,1基本的输入

通过addInputPath(s)setInputPath(s)四种静态方法设置输入路径。

1,2有选择的输入

如果需要排除特定文件,可以使用setInputPathFilter()方法设置一个过滤器。

注:FileInputFormat会使用一个默认的过滤器来排除隐藏文件(名称中以“.”和“_”开头的文件)。如果通过调用setInputPathFilter()设置过滤器,将会在默认过滤器的基础上进行过滤。

1,3FileInputFormat的输入分片

分片的大小计算公式:maxminimumSizeminmaximumSizeblockSize))。

默认情况下:maximumSize=Long.Max_Value

            MinimumSize=1

            MinimuSize < blockSize < maximumSize

因此,分片的大小=blockSize

1,4避免切分输入文件

方法一:增加最小分片大小minimumSize,使其大于要处理的最大文件的大小。

方法二:使用FileInputFormat的具体子类,并冲在isSplitable(),将返回值设为false。例子如下。

public class NonSplittableTextInputFormat extends TextInputFormat{
@override
protected boolean isSplitable(FileSystem fs, Path file){
return false;
}
}

 

  • TextInputFormat(默认的InputFormat

每条记录是一行输入。KeyLongWritable,存储该行在当前分片中的字节偏移量;Val:这行的内容,不包括行终止符(换行符和回车符)

  • KeyValueTextInputFormat

Hadoop默认的输出时TextOutputFormat,由\t分隔。使用该类,可以直接确定keyval。可以通过key.value.separator.in.input.line属性来指定分隔符,默认是\t

  • SequenceFileInputFormat

该类不仅可以读SequenceFile,而且可以读MapFile。如果在处理顺序文件时遇到目录,则会自动认为正在读MapFile,使用的是其数据文件。

  • 多种输入MultipleInputs

如果需要同时对多种的数据源进行处理,可以使用MultipleInputs,并可以设置每个数据源的Map处理函数。例子如下:

MultipleInputs.addInputPath(conf, dataset1,TextInputFormat.class,MyMapper1.class);
MultipleInputs.addInputPath(conf, dataset2,TextInputFormat.class,MyMapper2.class);

 

其中,dataset1dataset2的数据都是文本文件,所以两者都使用TextInputFormat,但是他们的行格式不同,所以指定了两个Mapper。但是需要注意,两个Mapper的输出类型必须一样,因此reduce看到的是聚集后的map输出。

该类还有一个重载版本的addInputPath()方法,它没有mapper参数,如果有多种输入格式而只有一个mapper,可以直接使用该重载方法,并在main中用setMapperClass指定Mapper

<!--[if !supportLists]-->六、<!--[endif]-->数据库输入(数据库和HBase),类DBInputFormat

输出

  • TextOutputFormat

这是默认的输出格式。

可以通过设置mapred.textoutputformat.separator属性改变默认的分隔符。与TextOutputFormat对应的输入格式是KeyValueTextInputFormat

  • SequenceFileOutputFormat
  • MapFileOutputFormat

该类把MapFile作为输出。MapFile中的键必须顺序添加,因此必须确保reducer输出的键已经排好序。

  • MultipleOutputFormat和类MultipleOutput(多个输出)

4,1 MultipleOutputFormat是个抽象类,有两个实体子类:MultipleTextOutputFormatMultipleSequenceFileOutputFormat类。该抽象类提供了一些子类覆盖来控制输出文件名的Protected方法。例子如下:

static class MyMultipleOut extends MultipleTextOutFormat<NullWritable,Text>{
//NullWritable,Text为输出的key和val类型
Protected String generateFileNameForKeyValue(NullWritable key, Text value, String name){
//返回的文件名是相对于输出路径的。
return parse(value);
}
}

 

最后,在main中设置setOutputFormat(MyMulitpleOut.class)

MultipleOutputFormat还有很多特性,如为只有map的作业进行复制输入目录结构和文件命名等能力。

4,2 MultipleOutputs

注意:MultipleOutputs只能包含字母字符。具体用法参见《hadoop权威指南》P221.

注:在新版的MapReduceAPI中,只有MultipleOutputs,它支持这两种多输出类的所有特征。

 

  • 数据库输出(数据库和HBase
0
0
分享到:
评论

相关推荐

    hadoop权威指南第三版完整版

    ### Hadoop权威指南第三版知识点总结 #### 一、Hadoop概述 - **定义与背景**:Hadoop是一个能够对大量数据进行分布式处理的软件框架。它由Apache基金会开发维护,旨在提供高可靠性、高效性及可扩展性的数据处理...

    Hadoop权威指南(第四版)——中文版--高清

    《Hadoop权威指南》第四版是Hadoop领域的经典著作,为中文高清版,全面而深入地探讨了这个分布式计算框架的各个方面。这本书旨在帮助读者理解Hadoop的核心概念、架构以及如何在实际环境中应用Hadoop解决大数据问题。...

    Hadoop权威指南_第四版_源码代码

    《Hadoop权威指南》第四版是Hadoop领域的经典著作,为深入理解并掌握Hadoop分布式计算框架提供了详尽的指导。源码代码的提供更是为读者提供了实践和探索Hadoop内部机制的宝贵资源。以下是对该书籍源码的详细解析和...

    Hadoop权威指南(第三版)高清PDF

    《Hadoop权威指南》第三版是一本全面深入探讨大数据处理技术——Hadoop的著作。这本书以其详尽的介绍和深入的分析,为读者提供了一条理解、掌握并应用Hadoop的清晰路径。以下是对该书内容的详细概述: 1. **Hadoop...

    Hadoop权威指南_第四版_中文版.zip

    《Hadoop权威指南》第四版中文版是大数据领域的一本经典著作,全面深入地介绍了Apache Hadoop生态系统。这本书详尽地讲解了Hadoop的核心概念、架构以及如何在实际环境中运用Hadoop解决大规模数据处理的问题。以下是...

    Hadoop权威指南中文版第一版

    ### Hadoop权威指南知识点概述 #### 一、Hadoop概览 - **起源与背景**:Hadoop项目起源于Google的三篇论文——GFS(Google File System)、MapReduce和BigTable,旨在为大规模数据处理提供一个开源解决方案。 - **...

    Hadoop权威指南-最新中文版

    《Hadoop权威指南》是大数据领域的一本经典著作,由Tom White撰写,王海等人翻译,清华大学出版社在2017年7月出版了第四版的修订升级中文版。这本书全面深入地介绍了Hadoop生态系统的核心技术和应用实践,是学习和...

    Hadoop权威指南(中文版)

    《Hadoop权威指南》中文版是大数据领域的一本经典著作,尤其对于想要深入理解并掌握Hadoop技术的读者来说,这本书提供了全面而详实的知识体系。Hadoop是Apache基金会的一个开源项目,它主要解决了在分布式环境中存储...

    Hadoop权威指南中文第2版

    《Hadoop权威指南》中文第二版是一本深入探讨Hadoop生态系统的重要教材,由清华大学出版社翻译。这本书详尽地介绍了分布式计算框架Hadoop的核心概念、架构以及实际应用,旨在帮助读者全面理解和掌握这一大数据处理的...

    Hadoop权威指南(英文第2版)

    ### Hadoop权威指南(英文第2版):深入解析与应用 #### 一、Hadoop简介 《Hadoop权威指南》(英文第2版)是一本由Tom White编著、Doug Cutting作序的重要参考书籍。本书全面介绍了Hadoop平台的核心组件、设计理念...

    Hadoop权威指南_第四版_中文版

    《Hadoop权威指南》第四版中文版是一本深入解析Hadoop生态系统的经典著作,它为读者提供了全面且详细的Hadoop知识体系。Hadoop是Apache软件基金会的一个开源项目,旨在提供分布式存储和计算的能力,使大数据处理变得...

    Hadoop权威指南_第2版_中文版.pdf

    ### Hadoop权威指南第二版知识点概述 #### 一、Hadoop简介 - **定义与背景**:Hadoop是一个开源框架,用于分布式存储和处理大型数据集。它最初由Apache软件基金会开发,旨在解决大规模数据处理的问题。 - **核心...

    Hadoop权威指南(中文版-带目录索引).zip

    《Hadoop权威指南》是大数据领域的一本经典著作,它深入浅出地介绍了Apache Hadoop这一分布式计算框架的方方面面。这本书对于理解Hadoop的核心概念、架构以及如何在实际项目中运用具有极大的指导价值。以下是对这...

    Hadoop权威指南(第三版)-书签-目录-中文.pdf

    《Hadoop权威指南》是大数据领域的一本经典著作,尤其在第三版中,它全面而深入地探讨了Hadoop生态系统,旨在帮助读者理解和掌握处理大规模数据集的技能。Hadoop是一个开源框架,最初由Apache软件基金会开发,主要...

    Hadoop权威指南(中文版)第三版

    《Hadoop权威指南》中文版第三版是一本深入解析Hadoop生态系统的专业书籍,它全面覆盖了Hadoop的核心概念、架构、安装配置以及实际应用。Hadoop作为大数据处理的重要工具,其分布式存储和计算能力在业界得到了广泛的...

    Hadoop权威指南(第3版) 修订版(带目录书签) 中文PDF高清晰

    《Hadoop权威指南》是大数据领域的一本经典著作,尤其第三版修订版更是深受读者喜爱。这本书详尽地介绍了Hadoop生态系统的核心技术和实践应用,帮助读者深入理解并掌握大规模数据处理的能力。以下将从多个方面解析书...

    hadoop英文第四版+源码

    《Hadoop权威指南》是大数据领域的一本经典著作,第四版更是涵盖了Hadoop生态系统最新的发展和技术。这本书由Tom White撰写,全面介绍了Hadoop的核心概念、架构以及实际操作,旨在帮助读者理解和掌握分布式存储和...

    Hadoop-The-Definitive-Guide-2nd-Edition.zip_Guide; The_hadoop

    通过阅读《Hadoop:权威指南》第二版,读者不仅能掌握Hadoop的基本操作,还能了解如何在实际项目中运用Hadoop解决大数据问题,为企业的数据驱动决策提供强有力的支持。这本书是学习Hadoop不可或缺的参考资料,无论你...

Global site tag (gtag.js) - Google Analytics