千家信息网

Hadoop输入和输出的处理类有哪些

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章主要介绍了Hadoop输入和输出的处理类有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。hadoop输入的处理类Input
千家信息网最后更新 2025年02月07日Hadoop输入和输出的处理类有哪些

这篇文章主要介绍了Hadoop输入和输出的处理类有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

hadoop输入的处理类

InputFormat

InputFormat负责处理MR的输入部分。

作用:

1、验证作业的输入是否规范。

2、把输入文件切分成InputSplit。

3、提供RecordReader的实现类,把InputSplit读到Mapper中进行处理。

FileInputFormat

FileInputFormat是所有以文件作为数据源的InputFormat实现的基类,FileInputFormat保存为Job输入的所有文件,并实现了对输入文件计算splits的方法。至于获得记录的方法是由不同的子类---TextInputFormat进行实现的。

TextInputFormat

默认的处理类,处理普通文本文件。

文件中每一行作为一个记录,他将每一行在文件中的起始偏移量作为key,每一行的内容作为value,默认以\n或回车键作为一行记录。

注意:TextInputFormat集成了FileInputFormat。

InputSplit

在执行MapReduce之前,原始数据被分割成若干Split,每个Split作为一个Map任务的输入,在Map执行过程中Split会被分解成一个个记录(key-value键值对),Map会依次处理每一个记录。

Hadoop将MapReduce的输入数据划分成等长的小数据块,称为输入分片(InputSplit)或简称分片。

Hadoop为每个分片构建一个Map任务,并由该任务来运行用户自定义的Map函数从而处理分片中的每条记录。

Hadoop在存储有输入数据(HDFS中的数据)的节点运行Map任务,可以获得最佳性能。这就是所谓的数据本地化优化。

最佳分片的大小应该与块大小相同:

因为它是确保可以存储在单个节点上的最大输入块的大小。如果分片跨越2个数据块,那么对于任何一个HDFS节点,基本上都不可能同时存储着2个数据块,因此分片中的部分数据需要通过网络传输到Map任务节点,。与使用本地数据运行整个Map任务相比,这种方法显然效率更低。

其他输入类

CombineFileInputFormat

相对于大量的小文件来说,Hadoop更合适处理少量的大文件。

CombineFileInputFormat可以缓解这个问题,它是针对小文件而设计的。

KeyValueTextInputFormat

当输入数据的每一行是两列,并用Tab分离的形式的时候,KeyValueTextInputFormat处理这种格式的文件非常适合。

NlineInputFormat

可以控制在每个Split中数据的行数。

SequenceFileInputFormat

当输入文件格式是SequenceFile的时候,要使用SequenceFileInputFormat作为输入。

自定义输入格式

1、集成FileInputFormat基类;

2、重写getSplits(JobContext context)方法;

3、重写createRecordReader(InputSplit split,TaskAttemptContext context)方法;

Hadoop输出的处理类

TextOutputFormat

默认的输出格式,key和value中间值用Tab隔开的。

SequenceFileOutputFormat

将key和value以sequence格式输出。

SequenceFileAsOutputFormat

将key和value以原始二进制的格式输出。

MapFileOutputFormat

将key和value写入MapFile中,由于MapFile中的key是有序的,所以写入的时候必须保证记录是按Key值顺序写入的。

MultipleOutputFormat

默认情况下一个Reduce会产生一个输出,但是有些时候我们想一个Reduce产生多个输出,MultipleOutputFormat和MultipleOutputs可以实现这个功能。

感谢你能够认真阅读完这篇文章,希望小编分享的"Hadoop输入和输出的处理类有哪些"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

输入 数据 处理 文件 输出 任务 格式 一行 方法 时候 篇文章 节点 大小 存储 运行 原始 同时 部分 不同 合适 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 回用服务器 nas 无法获取服务器响应 软件开发学徒有薪水吗 利用公司网站制作二维码数据库 旧电脑如何做服务器 数媒和网络技术哪个好就业 杭州百世网络技术有 软件开发团队成员包括哪些 软件开发培训能不能学到技术 电子软件开发类大学专业 抖音道具软件开发 残联网络安全宣传 南京可视化智慧园区软件开发 我的世界服务器没管理人员 海南互联网软件开发诚信服务 小学生网络安全故事大全 郑州鸠鸠科技互联网公司 标签条码数据库 2020年网络安全教育周 关于网络安全的博文英语结尾 软件开发人员待遇调整 网络安全教育心得450 共用数据库的坏处 考研网络安全技术与工程专业 国家数据库小粒种子普田1498 浙江服务器阵列卡电池云空间 校园网络安全应机制 软件开发的增值服务费一般是多少 如何影响软件开发效率 房山回收服务器价格行情
0