千家信息网

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

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要介绍了Hadoop输入和输出的处理类有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。hadoop输入的处理类Input
千家信息网最后更新 2024年11月26日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安全错误 数据库的锁怎样保障安全 郓城烟草网络安全 2020年国家网络安全短信 2018gartner数据库 软件开发学的什么 数据库与信息管理技术简介 疫情期间开展网络安全巡查工作 梧州黑盒测试网络安全培训 大话2服务器排名 巨毅网络技术有限公司怎么样 农行软件开发中心待遇怎么样 关于网络安全手抄报的装饰物 软件开发专用软件 千寻电话软件开发商 济南信息安全技术提升网络安全 基层工作人员 网络安全 域名解析服务器解析不了地址 大学网络安全图片 闵行区媒体数据库有哪些 大量的在线课程属于数据库资源吗 java软件开发就业咋样 软件开发中si什么意思 关于网络安全风险防范的通知 网络技术行业分析报告 淮安云数据库 三级考试数据库技术题型 上海七牛网络技术有限 网络技术与生活方式的改变 计算机和网络安全软件 动态网页的数据库连接技术 数据库做好发给别人怎么会乱码
0