HDFS小文件问题解决方案+SequenceFile简单介绍
发布日期:2021-06-29 12:30:30 浏览次数:2 分类:技术文章

本文共 781 字,大约阅读时间需要 2 分钟。

HDFS和MR主要针对大数据文件来设计,在小文件处理上效率低.

解决方法是选择一个容器,将这些小文件包装起来,将整个文件作为一条记录,可以获取更高效率的储存和处理,避免多次打开关闭流耗费计算资源.

hdfs提供了两种类型的容器 SequenceFile和MapFile
小文件问题解决方案1、在原有HDFS基础上添加一个小文件处理模块,具体操作流程如下:2、当用户上传文件时,判断该文件是否属于小文件。  如果是,则交给小文件处理模块处理。  否则,交给通用文件处理模块处理。在小文件模块中开启一定时任务,其主要功能是当模块中文件总size大于HDFS上block大小的文件时,则通过SequenceFile组件以文件名做key,相应的文件内容为value将这些小文件一次性写入hdfs模块。3、同时删除已处理的文件,并将结果写入数据库。4、当用户进行读取操作时,可根据数据库中的结果标志来读取文件。
SequenceFileSequence file由一系列的二进制key/value组成.如果key为小文件名,value为文件内容,则可以将大批小文件合并成一个大文件。Hadoop-0.21.0版本开始中提供了SequenceFile,包括Writer,Reader和SequenceFileSorter类进行写,读和排序操作。该方案对于小文件的存取都比较自由,不限制用户和文件的多少,支持Append追加写入,支持三级文档压缩(不压缩、文件级、块级别)。

存储结构如图:

这里写图片描述

SequenceFile储存文件中每条记录是可序列化,可持久化的键值对,提供相应的读写器和排序器,写操作根据压缩的类型分为3种Write 无压缩写数据RecordCompressWriter记录级压缩文件,只压缩值BlockCompressWrite块级压缩文件,键值采用独立压缩方式

转载地址:https://bupt-xbz.blog.csdn.net/article/details/79170642 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SequeceFile读写
下一篇:HDFS数据完整性

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月10日 01时09分24秒