• Apache Hadoop 输入格式示例


    目录

    TextInputFormat 示例

    SequenceFileInputFormat 示例

    总结


    TextInputFormat 示例

    1. 描述: TextInputFormatHadoop 中使用最广泛的输入格式之一,适用于纯文本文件。它将文件按行划分,把每一行的起始偏移量作为键(key),整行的文本作为值(value)。

    2. 工作机制:

      • 当 TextInputFormat 用于读取文件时,它会将文件分割成一个个的分片(splits),分片的大小可以根据 Hadoop 的配置来设置。
      • 每个分片的处理会尝试保持换行符的完整性,即使换行符跨越了两个不同的 HDFS 块。
      • 如果一行数据恰好在两个分片的边界上,TextInputFormat 会处理这种边界情况,确保这一行数据被完整地读取。
    3. 使用场景:

      • 适用于日志文件、CSV 文件等结构简单的文本数据处理。
      • 例如,一个 Hadoop 作业可能读取一个大型文本文件,使用 TextInputFormat 来统计文件中每个单词的出现次数。

    SequenceFileInputFormat 示例

    1. 描述: SequenceFileInputFormat 是用于读取序列文件(SequenceFile)的输入格式。序列文件是一种平面文件(flat file)存储格式,由 Hadoop 提供,用于存储键值对。

    2. 工作机制:

      • 序列文件由一系列的二进制键值对组成,并且可以被压缩。
      • SequenceFileInputFormat 会读取序列文件并生成分片,每个分片包含一系列的键值对。
      • 由于序列文件内部有同步点(sync points),SequenceFileInputFormat 可以快速找到分片的起始点,即使它们在文件的中间。
    3. 使用场景:

      • 适用于需要高效读写的二进制格式数据处理。
      • 常用于作为 MapReduce 任务间的中间数据格式,或者存储经常需要读写的数据。
      • 例如,一个 MapReduce 作业可能产生了大量的中间结果数据,使用 SequenceFileInputFormat 可以高效地将这些数据写入 HDFS,供后续作业读取。

    总结

       TextInputFormatSequenceFileInputFormat 是 Hadoop 中常见的两种输入格式,分别适用于处理文本数据和二进制数据。它们都能够处理大文件的分片,并且保证数据的完整性。在 MapReduce 编程模型中,选择合适的输入格式对于作业的性能和可靠性至关重要。

  • 相关阅读:
    go泛型教程
    perl删除目录下过期的文件
    数据安全技术专利态势分析
    DAO:Web3 的必要组件
    基于ssm框架的大学生社团管理系统
    Websocket
    NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
    zabbix 自动发现
    【MySQL】高性能高可用表设计实战-表设计篇(MySQL专栏启动)
    快速入门Elasticsearch:安装、基本概念、分词器和文档基本操作详解
  • 原文地址:https://blog.csdn.net/u014745465/article/details/137916631