版本:
2.2版
描述:
OutputFormat是设置MR的结果输出写操作格式,包括如何写?写那?也就是定义写规则
类代码:
抽象类定义:
public abstract RecordWriter<K, V> getRecordWriter( TaskAttemptContext context) throws IOException, InterruptedException; public abstract void checkOutputSpecs(JobContext context) throws IOException, InterruptedException; public abstract OutputCommitter getOutputCommitter( TaskAttemptContext context) throws IOException, InterruptedException;
获取RecordWriter定义了写的具体操作,那么他抽象的方法如下:
public abstract void write(K key, V value) throws IOException, InterruptedException; public abstract void close(TaskAttemptContext context) throws IOException, InterruptedException;
也就是具体的写和资源关闭操作,比如LineRecordWriter那么他就是基于Key和Value分割然后直接写的操作
在OutputCommitter中定义了跟MRjob执行情况的一些操作,比如job启动,job失败等,其抽象操作如下:
public abstract void setupJob(JobContext jobContext) throws IOException; @Deprecated public void cleanupJob(JobContext jobContext) throws IOException { } public void commitJob(JobContext jobContext) throws IOException { cleanupJob(jobContext); } public void abortJob(JobContext jobContext, JobStatus.State state) throws IOException { cleanupJob(jobContext); } public abstract void setupTask(TaskAttemptContext taskContext) throws IOException; public abstract boolean needsTaskCommit(TaskAttemptContext taskContext) throws IOException; public abstract void commitTask(TaskAttemptContext taskContext) throws IOException; public abstract void abortTask(TaskAttemptContext taskContext) throws IOException; public boolean isRecoverySupported() { return false; } public void recoverTask(TaskAttemptContext taskContext) throws IOException { }
在写的操作中需要核实资源是否够用,资源是否合理被操作等操作都是在checkOutputSpecs中进行的
相关推荐
MapReduce之自定义 OutPutFormat,通过一个案例,实现自定义的一个OutPutFormat,来更加的深刻的理解MR的过程
例如,使用Hadoop的InputFormat和OutputFormat接口,开发者可以定义自定义的数据输入和输出格式。同时,Hadoop的Configuration类使得配置参数变得简单,而FileSystem API则允许开发者操作HDFS上的文件。 在实际开发...
7. **扩展性与插件开发**:学习如何为Hadoop开发自定义InputFormat、OutputFormat、Partitioner、Combiner等组件。 8. **实战项目**:结合实际案例,运用所学知识解决大数据处理问题,如日志分析、推荐系统等。 ...
【尚硅谷大数据技术之Hadoop】是一门深入探讨大数据处理技术的课程,主要聚焦于开源框架Hadoop。Hadoop是Apache软件基金会开发的一个分布式计算项目,它为大规模数据集(大于1TB)提供了高容错性的分布式存储和计算...
在Hadoop MapReduce框架中,OutputFormat扮演着至关重要的角色,它是定义如何将Mapper和Reducer产生的中间结果转化为最终输出格式的规范。MapReduce之OutputFormat数据输出主要涉及到以下几个方面: 1. **...
4. **Hadoop API**:学习使用Hadoop API进行数据读写和处理,例如FileSystem API用于文件操作,InputFormat和OutputFormat定义输入输出格式,Mapper和Reducer实现数据处理逻辑。 5. **MapReduce编程**:理解...
- **Hadoop API**:学习如何使用Hadoop API开发MapReduce程序,理解和使用InputFormat、OutputFormat、Mapper、Reducer等关键类。 - **本地模式**:开发者可以在单机上运行Hadoop,进行快速测试和调试,无需真实...
4. **I/O库和接口**:Hadoop Common还提供了各种I/O接口和类,如InputFormat和OutputFormat接口,用于定义数据读取和写入的方式;RecordReader和RecordWriter,处理输入和输出记录的类;以及各种压缩和编码算法,如...
同时,源码包也方便了开发者进行扩展和优化,例如自定义InputFormat、OutputFormat、Partitioner、Reducer等,以适应特定的业务需求。 此外,由于这个源码包是基于Maven结构生成的,所以它应该包含了所有依赖项的...
然后逐步深入源码,结合实际案例分析,例如研究如何自定义InputFormat、OutputFormat、Mapper和Reducer等组件。此外,熟悉Java编程语言和面向对象设计是必不可少的,因为Hadoop主要用Java实现。 总之,Hadoop脚本的...
Hadoop中的压缩机制是通过InputFormat和OutputFormat接口来实现的,它们允许用户选择不同的压缩编码器。Snappy压缩支持包就是提供了这种编码器,使得Hadoop能够以Snappy格式进行数据压缩和解压缩。通常,Hadoop会将...
3. **MapReduce API**:掌握如何编写Mapper和Reducer类,理解InputFormat、OutputFormat以及Partitioner的工作原理,以及JobConf配置的使用。 4. **Hadoop配置**:了解如何通过XML配置文件设置Hadoop集群参数,例如...
1. Hadoop的MapReduce编程模型,包括InputFormat、Mapper、Partitioner、Reducer和OutputFormat等组件的作用。 2. Java的IO流和序列化,因为数据需要在网络间传输和持久化。 3. 分布式计算中的数据分区和排序,这...
Hadoop-LZO不仅提供了对LZO压缩格式的支持,还包含了用于Hadoop的InputFormat和OutputFormat,使得Hadoop可以直接处理LZO压缩的数据。 二、LZO压缩算法 LZO(Lempel-Ziv-Oberhumer)是一种实时数据压缩算法,它...
在大数据处理领域,Hadoop是不可或缺的核心技术之一。作为一个开源框架,Hadoop为海量数据的存储、处理和分析提供了高效且可扩展的解决方案。本文将深入探讨“Hadoop高级编程——构建与实现大数据解决方案”这一主题...
InfoQ 提供的相关资料如"InfoQ Hadoop基本流程与应用开发"、"InfoQ 分布式计算开源框架Hadoop介绍"和"InfoQ Hadoop中的集群配置和使用技巧"将帮助你深入学习这些主题,为你的Hadoop之旅提供坚实的理论基础和实践指导...
2. **Chap 2 - 数据输入与输出**:这章可能包含如何使用Hadoop的InputFormat和OutputFormat类来定义数据的读取和写入方式。读者可以学习如何自定义输入分片(Splits)和Mapper/Reducer任务。 3. **Chap 3 - ...
这个库提供了Hadoop InputFormat、OutputFormat、RecordReader和RecordWriter,使得Elasticsearch可以作为Hadoop作业的数据源和目标。 在Hadoop 2.4.0版本中,引入了一些关键改进,如YARN(Yet Another Resource ...
Hadoop是一个由Apache基金会开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。它有以下几个核心组成部分: 1. Hadoop Common:包含...