在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Sequence File格式是什么?如何使用?Hadoop可以存储多种文件格式。sequenceFile文件是Hadoop用来存储二进制形式的[Key,Value]对而设计的一种平面文件Flat File。可以把SequenceFile当做是一个容器,把所有的文件打包到SequenceFile类中可以高效的对小文件进行存储和处理。
SequenceFile文件并不按照其存储的Key进行排序存储,SequenceFile的内部类Writer提供了append功能。SequenceFile中的Key和Value可以是任意类型Writable或者是自定义Writable。
在存储结构上,SequenceFile主要由一个Header后跟多条Record组成,Header主要包含了Key classname,value classname,存储压缩算法,用户自定义元数据等信息,此外,还包含了一些同步标识,用于快速定位到记录的边界。
每条Record以键值对的方式进行存储,用来表示它的字符数组可以一次解析成:记录的长度、Key的长度、Key值和value值,并且Value值的结构取决于该记录是否被压缩。
HDFS文件存储格式介绍:
1、TEXTFILE
Hive数据表的默认格式,存储方式:行存储。可以使用Gzip压缩算法,但压缩后的文件不支持split。在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍。
2、SEQUENCEFILE
压缩数据文件可以节省磁盘空间,但Hadoop中有些原生压缩文件的缺点之一就是不支持分割。支持分割的文件可以并行的有多个mapper程序处理大数据文件,大多数文件不支持可分割是因为这些文件只能从头开始读。Sequence File是可分割的文件格式,支持Hadoop的block级压缩。
Hadoop API提供的一种二进制文件,以key-value的形式序列化到文件中。存储方式:行存储。sequencefile支持三种压缩选择:NONE,RECORD,BLOCK。Record压缩率低,RECORD是默认选项,通常BLOCK会带来较RECORD更好的压缩性能。优势是文件和hadoop api中的MapFile是相互兼容的。
3、RCFILE
存储方式:数据按行分块,每块按列存储。结合了行存储和列存储的优点,RCFile 保证同一行的数据位于同一节点,因此元组重构的开销很低,像列存储一样,RCFile 能够利用列维度的数据压缩,并且能跳过不必要的列读取。
数据追加:RCFile不支持任意方式的数据写操作,仅提供一种追加接口,这是因为底层的 HDFS当前仅仅支持数据追加写文件尾部。
行组大小:行组变大有助于提高数据压缩的效率,但是可能会损害数据的读取性能,因为这样增加了 Lazy 解压性能的消耗。而且行组变大会占用更多的内存,这会影响并发执行的其他MR作业。考虑到存储空间和查询效率两个方面,Facebook 选择 4MB 作为默认的行组大小,当然也允许用户自行选择参数进行配置。
4、ORCFILE
存储方式:数据按行分块,每块按照列存储。压缩快,快速列存取。效率比rcfile高,是rcfile的改良版本。
结合项目中使用SequenceFile压缩率最低,查询速度一般。项目中存储小的二进制文件,用Sequence File这个格式。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据技术自学能学会吗?大数据应该如何自学?
大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。那大数据技术自学能学会吗?大数据应该如何自学呢?
6730
2019-08-14 10:21:23
学完云计算和大数据好找工作吗?可以胜任哪些岗位呢?
学完云计算和大数据好找工作吗?可以胜任哪些岗位呢?随着云时代的发展,大数据也吸引了越来越多的目光。云计算和大数据早已成为不可分割的一体,掌握了云计算和大数据也就掌握了大数据常见的实时以及离线开发框架,具备架构设计以及开发能力,能够胜任 hadoop开发工程师,spark开发工程师,flink开发工程师等岗位。下面我们来看看学习云计算和大数据能找哪些工作。
8343
2019-10-15 09:18:35
数据中台对企业有哪些意义和作用?
随着数据化浪潮席卷全球,数据中台也由此应运而生。众所周知,数据中台的主要作用在于把数据进行统一标准和口径之后,再进行储存和加工,从而使企业可以提供更高效的服务。简单来讲,数据中台是以节省企业成本,实现精细化运营为目标。那么数据中台对企业到底有哪些具体意义和作用呢?下面我们来具体看一下。
7386
2020-02-10 22:29:52
大数据之Spark框架中RDD和DataFrame的区别
大数据之Spark框架中RDD和DataFrame的区别是什么?RDD(提供了一种高度受限的共享内存模型;DataFrame是一种分布式的数据集,并且以列的方式组合的。在spark中RDD、DataFrame是最常用的数据类型,在使用的过程中你知道两者的区别和各自的优势吗?关于如何具体的应用我们今天就好好的分析一下。
3575
2022-02-18 11:32:22
从后端开发转大数据开发怎么样?
你为什么从后端开发(Java/golang)转到大数据开发(Hadoop/Spark)?转大数据的最初原因很简单,就是好几个同事都转了,他们的收入瞬间提高了好多,于是在同事的内推我也就跟着转了,转完以后发现自己真的转对了。有以下几个理由:
3301
2022-06-30 14:25:06