定期分享源码,总结相关知识点,哈哈哈,来关注啊
概括
Hadoop 的 HDFS 和 MapReduce 子框架主要是针对大数据文件来设计的,在小文件的处理上不但效率低下,而且十分消耗内存资源(每一个小文件占用一个 Block,每一个 block 的元数据都存储在 namenode 的内存里)。解决办法通常是选择一个容器,将这些小文件组织起来统一存储。HDFS 提供了两种类型的容器,分别是 SequenceFile 和 MapFile。
关于SequenceFile
概述
SequenceFile 是 Hadoop 的一个重要数据文件类型,它提供key-value的存储,但与传统key-value存储(比如hash表)不同的是,它是appendonly的,于是你不能对已存在的key进行写操作。
解决问题
该文件格式通常被用来解决hadoop中的小文件问题,相当于一个容器,把这些小文件组织起来统一存储。
压缩格式
SeqeunceFile支持两种格式的数据压缩,分别是:record compression 和 block compression。
存储结构
在存储结构上,SequenceFile 主要由一个 Header 后跟多条 Re