.文件格式
文件格式按面向的存储形式不同,分为面向行和面向列两大类文件格式。
面向行、列类型 | 类型名称 | 是否可切割计算 | 优点 | 缺点 | 适用场景 |
面向行 | 文本文件(.txt) | YES | 查看编辑简单 |
无压缩占空间大,传输 压力大,数据解析开销大 |
学习练习使用 |
面向行 |
SequenceFile序列 文件格式(.seq) |
YES |
自支持、二进制KV 存储,支持行和块的 压缩 |
本地查看不方便,小文件合并 成KV格式后不易查看内部数据 |
生产环境使用 map输出的默认 文件格式 |
面向列 | rcfile文件格式(.rc) | YES |
数据加载快,查询快, 空间利用率高,高负 载能力 |
每一项都不是最高 | 学习生产均可 |
面向列 | orcfile文件格式(.orc) | YES |
兼具rcfile优点、进一步 提高了读取、存储效率、 新数据类型的支持 |
每一项都不是最高 | 学习生产均可 |
压缩格式按其可切分性,分成可切分和不可切分两种
可切分性 | 类型名称 | 是否Hadoop原生支持 | 优点 | 缺点 | 适用场景 |
可切分 | lzo(.lzo) | NO |
压缩、解压速度快, 合理的压缩率 |
压缩率比gzip低 不原生、需要native 安装 |
单个文件越大,lzo 优点越越明显。压 缩完成后>=200M为宜 |
可切分 |
bzip2(.bz2) | YES |
高压缩率超过gzip,原生 支持,用linux bzip可解压操作 |
压缩、解压速率慢 |
处理速度要求不高,需 要高压缩率 |
不可切分 | gzip(.gz) | YES |
压缩解压速率快 原生、native都支持使用方便 |
不可切分,对cpu要 求高 |
压缩后文件<=130MB 适宜 |
不可切分 | snappy(.snappy) | NO |
高速压缩/解压速度,合理的 压缩率 |
压缩率比gzip低,不原生, 需要native安装 |
适合作为map->reduce 或是job数据流的中间数 据传输格式 |