`
小网客
  • 浏览: 1241083 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop之InputFormat

 
阅读更多

版本:

2.2版

描述:

InputFormat是为了读取的时候设置的输入格式,比如我们如果打算在MR的时候读文件那么我们就需要知道文件的路径以及每次mapper多少,InputFormat正是基于这个需求提出来的,也就是定义读取规则。

用途:

1.怎么读

2.从那读

首先看下InputFormat抽象类的定义

public abstract 
    List<InputSplit> getSplits(JobContext context
                               ) throws IOException, InterruptedException;
public abstract 
    RecordReader<K,V> createRecordReader(InputSplit split,
                                         TaskAttemptContext context
                                        ) throws IOException, 
                                                 InterruptedException;			     

那么getSplits中定义的就是从那读,而怎么读是在createRecordReader中定义的,我们可以看下InputSplit的定义:

public abstract long getLength() throws IOException, InterruptedException;
public abstract String[] getLocations() throws IOException, InterruptedException;

其实这个定义如果是接口那么不是很确切,这个准确的来讲是保存数据的地址以及读所用的其他资源因此用新版开始以抽象类形式出现而不是接口,具体的实现还需要根据自己的需要进行相应的添加。

那么读的抽象定义如下:

public abstract void initialize(InputSplit split, TaskAttemptContext context)
		throws IOException, InterruptedException;

public abstract boolean nextKeyValue() throws IOException,
		InterruptedException;

public abstract KEYIN getCurrentKey() throws IOException,
		InterruptedException;

public abstract VALUEIN getCurrentValue() throws IOException,
		InterruptedException;

public abstract float getProgress() throws IOException,
		InterruptedException;

public abstract void close() throws IOException;

那么这个就可以直接获取到对应的当前Value等数据信息

 

其他场景:

如果打算以mysql某表的数据作为输入源那么只需要继承此类即可(已经有实现不过需要自己重新定义DBWritable)

0
1
分享到:
评论

相关推荐

    CustomInputFormatCollection:Hadoop Mapreduce InputFormat 集合

    Hadoop 代码使用方式 ...hadoop jar hadoop-mapreduce-custom-inputformat-1.0-SNAPSHOT.jar org.apache.hadoop.mapreduce.sample.SmallFileWordCount -Dmapreduce.input.fileinputformat.split.maxsize=10

    Hadoop源码解析---MapReduce之InputFormat

    综上所述,InputFormat是Hadoop MapReduce编程模型中的核心组件之一,它通过定义数据的分片和读取机制,允许开发者以灵活的方式处理各种格式的数据。理解InputFormat的设计和实现,对于有效地使用Hadoop进行大规模...

    hadoop-lzo-master.zip

    Hadoop-LZO不仅提供了对LZO压缩格式的支持,还包含了用于Hadoop的InputFormat和OutputFormat,使得Hadoop可以直接处理LZO压缩的数据。 二、LZO压缩算法 LZO(Lempel-Ziv-Oberhumer)是一种实时数据压缩算法,它...

    hadoop2lib.tar.gz

    例如,使用Hadoop的InputFormat和OutputFormat接口,开发者可以定义自定义的数据输入和输出格式。同时,Hadoop的Configuration类使得配置参数变得简单,而FileSystem API则允许开发者操作HDFS上的文件。 在实际开发...

    Hadoop Real-World Solutions Cookbook 源代码

    2. **Chap 2 - 数据输入与输出**:这章可能包含如何使用Hadoop的InputFormat和OutputFormat类来定义数据的读取和写入方式。读者可以学习如何自定义输入分片(Splits)和Mapper/Reducer任务。 3. **Chap 3 - ...

    自定义MapReduce的InputFormat

    在Hadoop MapReduce框架中,InputFormat是处理输入数据的核心组件。它负责将原始数据分割成逻辑上的键值对(key-value pairs),然后为每个分区分配一个或多个这些键值对给Mapper。默认情况下,Hadoop支持如...

    flink-shaded-hadoop-2-uber-2.6.5-10.0.zip

    1. **数据读写**:Flink通过Hadoop的InputFormat和OutputFormat接口,可以读取和写入Hadoop支持的各种数据源,如HDFS、HBase等。这使得Flink可以方便地访问Hadoop生态系统中的存储系统,进行大规模的数据处理。 2. ...

    Hadoop开发者入门-带书签文字版

    6. **数据输入与输出**:学习如何使用Hadoop的InputFormat和OutputFormat,以及RecordReader和RecordWriter,实现对不同格式数据的读写。 7. **Hadoop安全**:理解Hadoop的安全特性,如Kerberos认证、访问控制列表...

    hadoop-2.7.3源码和安装包.zip

    5. **数据输入与输出**:学习如何使用Hadoop的InputFormat和OutputFormat接口自定义数据格式,以及如何使用`hadoop fs`命令操作HDFS。 6. **应用程序开发**:掌握如何编写MapReduce程序,理解Mapper和Reducer的工作...

    实战hadoop中的源码

    7. **扩展性与插件开发**:学习如何为Hadoop开发自定义InputFormat、OutputFormat、Partitioner、Combiner等组件。 8. **实战项目**:结合实际案例,运用所学知识解决大数据处理问题,如日志分析、推荐系统等。 ...

    尚硅谷大数据技术之Hadoop

    【尚硅谷大数据技术之Hadoop】是一门深入探讨大数据处理技术的课程,主要聚焦于开源框架Hadoop。Hadoop是Apache软件基金会开发的一个分布式计算项目,它为大规模数据集(大于1TB)提供了高容错性的分布式存储和计算...

    elasticsearch-hadoop-5.2.1

    9. **RESTful接口**:除了传统的MapReduce和Spark支持,Elasticsearch-Hadoop还支持通过Hadoop的InputFormat和OutputFormat使用Hadoop的通用工具(如Hive和Pig)来与Elasticsearch交互,这些工具可以直接利用Elastic...

    云计算分布式大数据Hadoop实战之路--从零开始(第1-10讲)

    在本课程“云计算分布式大数据Hadoop实战之路--从零开始(第1-10讲)”中,我们将深入探讨Hadoop这一核心的云计算技术在大数据处理中的应用。Hadoop是Apache软件基金会的一个开源项目,其设计目标是允许在廉价硬件上...

    hadoop 文档:Hadoop开发者下载

    4. **Hadoop API**:学习使用Hadoop API进行数据读写和处理,例如FileSystem API用于文件操作,InputFormat和OutputFormat定义输入输出格式,Mapper和Reducer实现数据处理逻辑。 5. **MapReduce编程**:理解...

    基于Hadoop与MongoDB整合技术的大数据处理分析.pdf

    例如,对Hadoop的InputFormat和OutputFormat进行扩展,以更好地适配MongoDB的数据模型和操作习惯,从而实现对整合框架的优化和性能提升。 总之,Hadoop与MongoDB整合技术的大数据处理分析,为处理和分析大规模数据...

    Hadoop权威指南(2)

    《Hadoop权威指南》是Hadoop领域的经典之作,它详细阐述了Hadoop生态系统的核心技术和实践应用。本指南分为五个主要章节,涵盖了从Hadoop的基本概念到MapReduce编程模型,再到HDFS和I/O处理,最后深入到MapReduce的...

    hadoop-common-2.7.1-bin-master.zip

    4. **I/O库和接口**:Hadoop Common还提供了各种I/O接口和类,如InputFormat和OutputFormat接口,用于定义数据读取和写入的方式;RecordReader和RecordWriter,处理输入和输出记录的类;以及各种压缩和编码算法,如...

    hadoop-3.1.3-src.tar.gz

    - **Hadoop API**:学习如何使用Hadoop API开发MapReduce程序,理解和使用InputFormat、OutputFormat、Mapper、Reducer等关键类。 - **本地模式**:开发者可以在单机上运行Hadoop,进行快速测试和调试,无需真实...

    hadoop2.7.3源码包,hadoop2.7.3zip源码包

    同时,源码包也方便了开发者进行扩展和优化,例如自定义InputFormat、OutputFormat、Partitioner、Reducer等,以适应特定的业务需求。 此外,由于这个源码包是基于Maven结构生成的,所以它应该包含了所有依赖项的...

    Hadoop源码分析 第一章 Hadoop脚本

    然后逐步深入源码,结合实际案例分析,例如研究如何自定义InputFormat、OutputFormat、Mapper和Reducer等组件。此外,熟悉Java编程语言和面向对象设计是必不可少的,因为Hadoop主要用Java实现。 总之,Hadoop脚本的...

Global site tag (gtag.js) - Google Analytics