`

InputFormat牛逼(8)FileInputFormat实现类之TextInputFormat

 
阅读更多
/** An {@link InputFormat} for plain text files.  Files are broken into lines.
 * Either linefeed or carriage-return are used to signal end of line.  Keys are
 * the position in the file, and values are the line of text.. */
@InterfaceAudience.Public
@InterfaceStability.Stable
public class TextInputFormat extends FileInputFormat<LongWritable, Text> {

  @Override
  public RecordReader<LongWritable, Text> 
    createRecordReader(InputSplit split,
                       TaskAttemptContext context) {
    String delimiter = context.getConfiguration().get(
        "textinputformat.record.delimiter");
    byte[] recordDelimiterBytes = null;
    if (null != delimiter)
      recordDelimiterBytes = delimiter.getBytes(Charsets.UTF_8);
    return new LineRecordReader(recordDelimiterBytes);
  }

  @Override
  protected boolean isSplitable(JobContext context, Path file) {
    final CompressionCodec codec =
      new CompressionCodecFactory(context.getConfiguration()).getCodec(file);
    if (null == codec) {
      return true;
    }
    return codec instanceof SplittableCompressionCodec;
  }

}
分享到:
评论

相关推荐

    Hadoop源码解析---MapReduce之InputFormat

    Hadoop框架本身提供了一些常用的InputFormat实现,如FileInputFormat,适用于普通的文件输入;DBInputFormat,适用于数据库的输入;还有KeyValueTextInputFormat,用于处理以键值对形式组织的文本文件输入。 接下来...

    自定义MapReduce的InputFormat

    默认情况下,Hadoop支持如TextInputFormat这样的基本InputFormat,它将每行文本作为键值对处理,其中键通常是偏移量,值是整行内容。然而,对于特定的数据格式或需求,可能需要自定义InputFormat以更高效或精确地...

    【MapReduce篇03】MapReduce之InputFormat数据输入1

    本文将深入讲解MapReduce的InputFormat,特别是默认的TextInputFormat以及几种常见的实现类。 FileInputFormat是所有输入格式的基类,它定义了如何将HDFS上的文件拆分成多个InputSplit,每个InputSplit进一步由...

    hive inputformat

    这通常涉及到创建两个类:RecordReader和InputFormat。RecordReader负责读取数据文件并按需拆分记录,而InputFormat负责初始化RecordReader并确定数据分片(Splits)。 4. **实例代码:按照空格拆分日志文件** ...

    自定义inputFormat&&outputFormat1

    自定义inputFormat&&outputFormat1

    CustomInputFormatCollection:Hadoop Mapreduce InputFormat 集合

    Hadoop 代码使用方式 job.setInputFormatClass(SmallFileCombineTextInputFormat.class); 当前Maven提加如下依赖 讲无法从reposity中找到直接jar,需手动编译下载...-Dmapreduce.input.fileinputformat.split.maxsize=10

    MapReduce技术深入理解.pptx

    - FileInputFormat:所有基于文件的InputFormat的基类,用于设置作业的输入文件位置。 - TextInputFormat:默认的InputFormat,key是行的字节偏移量,value是行内容(不包含行终止符)。 - KeyValueTextInputFormat...

    MapReduce计算模型详讲(结合源码深入解读)

    8. RecordReader的实现类:LinerRecodrReader是RecordReader的实现类,用于读取文本文件的输入分片。它的主要成员变量有:compressionCodecs(用于解压缩输入分片)、start(输入分片在文件中的开始位置)和pos(该...

    MapReduce技术原理深入理解.pdf

    MapReduce提供了多种输入处理类,例如InputFormat、FileInputFormat等。这些类提供了不同的输入处理方式,例如读取文件、读取数据库等。 MapReduce序列化 MapReduce提供了序列化机制,可以将,v&gt;对序列化为byte数组...

    17_尚硅谷大数据之MapReduce框架原理1

    `FileInputFormat`是InputFormat的一个常见实现,用于处理文件类型的输入数据。 - **Job 提交流程**:客户端首先通过`Job`类提交作业,`waitForCompletion()`方法启动作业并等待其完成。`submit()`方法建立与...

    MapReduce技术深入理解.pdf

    - **FileInputFormat**:所有基于文件的InputFormat的基础类,定义输入文件的位置。 - **TextInputFormat**:默认的InputFormat,键是行的字节偏移量,值是行内容。 - **KeyValueTextInputFormat**:键和值由特定...

    hadoop开发所需类

    常见的实现有`TextInputFormat`和`TextOutputFormat`,但可以根据需求自定义。 7. **JobTracker与TaskTracker**(Hadoop 1.x)/ Resource Manager与Node Manager(Hadoop 2.x,YARN):这些是Hadoop集群管理和任务...

    示例-MapReduce-MultipleInputs用法

    2. **创建 InputFormat 对象**:为每个输入源创建一个特定的 `InputFormat` 实例,例如 `TextInputFormat` 或自定义的输入格式。 3. **创建 Mapper 类**:针对每个输入源创建一个单独的 Mapper 类,处理相应格式的...

    Hadoop源代码分析(IDs类和Context类)

    - `mapreduce.inputformat.class`:指定输入格式的实现类; - `mapreduce.map.class`:指定Mapper的实现类; - `mapreduce.combine.class`:指定Combiner的实现类(如果有的话); - `mapreduce.reduce.class`:...

    json-mapreduce:可以分割多行JSON的InputFormat

    目前似乎没有任何可以支持多行 JSON 的 JSON InputFormat 类。 执照 Apache 许可。 用法 要开始,只需: 下载并运行ant 在您的环境中包含dist/lib/json-mapreduce-1.0.jar 使用MultiLineJsonInputFormat类作为您...

    Java编写Mapreduce程序过程浅析

    3. **InputFormat类**:定义如何将输入数据分割成键值对,如`org.apache.hadoop.mapred.TextInputFormat`。 4. **OutputFormat类**:定义如何写入输出结果,如`org.apache.hadoop.mapred.TextOutputFormat`。 5. **...

    java 中自定义OutputFormat的实例详解

    在 Hadoop 中, OutputFormat 的实现类主要有两个:TextInputFormat 和 TextOutputFormat。 TextInputFormat 用于读取文本文件,而 TextOutputFormat 用于将文本数据写入到文件中。但是,在实际应用中,我们可能需要...

    SequenceFileKeyValueInputFormat:自定义 Hadoop InputFormat

    Apache Hive 的 InputFormat,在查询 SequenceFiles 时将返回 (Text) 键和 (Text) 值。 我需要在不拆分内容的情况下完整解析大量文本文件。 HDFS 在处理大型连续文件时提供最佳吞吐量,因此我使用 Apache Mahout 将...

    01-02MapReduce深入

    InputFormat是MapReduce框架基础类之一,负责读取输入数据,将其分割成小块,称为split。InputFormat的主要任务是将输入数据分割成小块,以便于后续的处理。 Split Split是InputFormat的输出结果,每个split包含...

Global site tag (gtag.js) - Google Analytics