深入理解Hadoop的输入输出模式
1. 引言
在Hadoop MapReduce中,定制输入和输出是提升其价值但常被忽视的方法。有时,我们不希望按Hadoop默认方式加载或存储数据,可能想跳过将数据存储在HDFS的耗时步骤,直接从原始数据源获取数据,或在MapReduce完成后将数据直接提供给使用它的进程。本文将详细介绍Hadoop中输入输出模式的相关内容。
2. 定制输入输出的重要性
Hadoop允许通过两种主要方式修改数据加载和存储方式:
- 配置如何从HDFS块(或其他数据源)生成连续的输入块。
- 配置记录在map阶段的呈现方式。
2.1 输入格式(InputFormat)
Hadoop依赖作业的输入格式完成以下三项任务:
1. 验证作业的输入配置(检查数据是否存在)。
2. 将输入块和文件拆分为逻辑类型的InputSplit,每个InputSplit分配给一个map任务进行处理。
3. 创建RecordReader实现,用于从原始InputSplit创建键/值对,并将这些对逐个发送到mapper。
常见的输入格式是FileInputFormat的子类,Hadoop默认使用TextInputFormat。以下是其工作流程:
graph LR
A[验证输入路径] --> B[逻辑拆分输入文件]
B --> C[分配InputSplit给map任务]
C --> D[RecordReader生成键/值对]
超级会员免费看
订阅专栏 解锁全文
2065

被折叠的 条评论
为什么被折叠?



