Hadoop的OutputFormat和InputFormat

本文深入探讨了Hadoop中用于数据输入和输出的关键组件,包括InputFormat和OutputFormat的作用,以及它们如何通过getSplits、createRecordReader、getRecordWriter等方法实现数据的高效读取与写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Hadoop用于数据的输入和输出,需要指定OutputFormat和InputFormat,这两个类的目的是为了指明读数据和写数据相关的包括格式等信息。

InputFormat:

 

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

createRecordReader:指明具体的读操作

 

getSplits:获取要读的数据块

我们可以看到InputSplit的类:

 

public abstract long getLength() throws IOException, InterruptedException;

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

具体的路径和长度

 

OutputFormat:

 

  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;

getRecordWriter:具体记录的写的方式

 

checkOutputSpecs:检测数据输出空间

getOutputCommitter:写flush操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值