文件格式
Text File
//文本,默认值
SequenceFile
// 二进制序列文件
RCFile
//列式存储格式文件 Hive0.6以后开始支持
Avro Files
//列式存储格式文件,比RCFILE有更高的压缩比和读写效率,Hive0.11以后开始支持
ORC Files
Parquet
Parquet //列出存储格式文件,Hive0.13以后开始支持
Custom INPUTFORMAT and OUTPUTFORMAT
SEQUENCEFILE :生产中绝对不会用,k-v格式,比源文本格式占用磁盘更多 TEXTFILE :生产中用的多,行式存储 RCFILE :生产中用的少,行列混合存储,OCR是他得升级版 ORC :生产中最常用,列式存储 PARQUET :生产中最常用,列式存储 AVRO :生产中几乎不用,不用考虑 JSONFILE :生产中几乎不用,不用考虑 INPUTFORMAT :生产中几乎不用,不用考虑 https://www.cnblogs.com/xuziyu/p/10737199.html
压缩算法
default
org.apache.hadoop.io.compress.DefaultCodec
gzip
org.apache.hadoop.io.compress.GzipCodec
lzo
com.hadoop.compression.lzo.LzopCodec
bizp2
org.apache.hadoop.io.compress.BZip2Codec
lz4
org.apache.hadoop.io.compress.Lz4Codec
snappy
org.apache.hadoop.io.compress.SnappyCodec
https://www.cnblogs.com/lillcol/p/11197982.html
https://blog.csdn.net/breakout_alex/article/details/101199663
https://blog.csdn.net/aA518189/article/details/86493554
https://blog.csdn.net/weixin_44769733/article/details/102710943
https://www.baidu.com/baidu?wd=%E5%90%8C%E6%A0%B7%E7%9A%84sql+%E7%94%A8hive%E5%92%8Cspark-sql+%E4%B8%80%E4%B8%AA%E5%80%BE%E6%96%9C%E4%B8%80%E4%B8%AA%E4%B8%8D%E5%80%BE%E6%96%9C&tn=monline_7_dg&ie=utf-8
https://github.com/flink-china/flink-training-course#11-%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%AD%A6%E4%B9%A0-apache-flink
优化方式
开启 map 输出阶段压缩
开启 map 输出阶段压缩可以减少 job 中 map 和 reduce task 间数据传输量。
1
2
3
4
5
6
7
8
-- 设置 hive 中间传输数据压缩功能
set hive.exec.compress.intermediate=true;
-- 设置 mapreduce 中 map 输出压缩
set mapreduce.map.output.compress=true;
-- 设置 mapreduce 中 map 输出数据的压缩方式
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
开启 reduce 输出阶段压缩
1
2
3
4
5
6
7
8
9
10
11
-- 设置 hive 最终输出数据压缩功能
set hive.exec.compress.output=true;
-- 设置 mapreduce 最终输出数据压缩
set mapreduce.output.fileoutputformat.compress=true;
-- 设置 mapreduce 最终数据输出压缩方式
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
-- 设置 mapreduce 最终数据输出压缩为块压缩
set mapreduce.output.fileoutputformat.compress.type=BLOCK;
其它设置
1
2
3
4
5
6
-- 控制着输出文件的压缩格式
set hive.exec.orc.default.compress=;
set mapred.output.compression.codec=;
set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;