Hadoop默认支持Gzip和BZip2解压缩方法,可以直接读取(hadoop fs -text命令),但只能在TEXTFILE格式的表中加载hive。 如果hive insert overwrite应用于其他格式的表,则它可以应用于其他格式的表,如SEQUENCEFILE表
BZip2和lzo (提供块级别的压缩)支持文件划分,而Gzip和Snappy不支持。 如果不支持,hadoop将无法并行执行地图操作。
hadoop支持的压缩格式
eflateorg.Apache.Hadoop.io.com press.default codec
gzip org.Apache.Hadoop.io.com press.gzip codec
bzip org.Apache.Hadoop.io.com press.bzip2codec
snappy org.Apache.Hadoop.io.com press.snappy codec
LZO:
org.Apache.Hadoop.io.com press.lzopcodec或com.Hadoop.com pression.lzo.lzopcodec;
org.Apache.Hadoop.io.com press.lzo codec或com.Hadoop.com pression.lzo.lzo codec;
可以查看当前加载到hive中的编解码器
set io.compression.codecs;
中间结果压缩
set hive.exec.com press.intermediate=true;
set hive.intermediate.com pression.codec=org.Apache.Hadoop.io.com press.lzo codec;
建议使用snappy压缩映射结果。 由于压缩假设map输出非常大,会影响io,因此中间结果数据集越小,速度反而越慢。
设置映射输出结果的压缩
setmapred.map.output.com pression.codec=org.Apache.Hadoop.io.com press.snappy codec;
压缩最终输出结果
hive.exec.compress.output和mapred.output.com pression.codec是hive-site.xml的配置参数。
mapred.output.compress和mapred.output.com pression.codec是hdfs-site.xml的配置参数。
可以配置实现。
Hive格式各种格式下不同压缩算法的比较
完全解密Hive压缩(Hive表存储格式和外部表直接加载压缩格式数据); HADOOP存储数据压缩方法比较(LZO、gz、ORC ) ) ) ) )。
Hive各种文件格式和压缩格式的结合测试
Hive支持的文件格式和压缩算法