其他文件格式及压缩方法
来源:互联网 发布:linux 脚本 while 编辑:程序博客网 时间:2024/04/29 11:15
Hive的一个独特的功能:Hive不会强制要求将数据转换成特定的格式才能使用。Hive使用Hadoop的InputFormat API来从不同的数据源读取数据,同样的使用OutputFormat API也可以将数据写成不同的格式。
压缩的好处:节约磁盘空间;可以增加吞吐量和性能;提高网络传输性能。
确定安装的编解码器
hive -e “set io.compression.codec”;//可以看到编解码器之间使用逗号进行分割的。
选择一种编/解码器
每一种压缩方案都在压缩/解压缩速度和压缩率间进行权衡。
BZip2压缩率最高,但是需要消耗最多的CPU开销;
GZip是压缩率和压缩/解压缩速度上的下一个选择;
LZO和Snappy压缩率相比前两个要小但是压缩/解压缩速度要快,特别是解压缩过程。
开启中间压缩
对于中间数据进行压缩可以减少job中map和reduce task间的数据传输量。对于中间数据的压缩,选择一个低CPU开销的要比选择一个压缩率高的编/解码器重要的多,通过设置hive.exec.compress.intermediate属性值为true来开启中间压缩。
hadoop默认的编/解码器为DefaultCodec。可以通过修改mapred.map.output.compression.codec的值来修改编/解码器。可以再HADOOP_HOME/conf/mapred-site.xml文件中或hive-site.xml文件中进行修改。SnappyCodec是一个比较好的中间文件压缩编/解码器。
输出结果压缩
hive.exec.compress.output和mapred.output.compression.codec两个属性
对于输出文件而言,使用GzipCodec进行压缩是不错的选择。
sequence file存储格式
sequence file提供了3中压缩方式:NONE、RECORD、BLOCK,默认的是RECORD级别,不过通常来说,BLOCK级别压缩性能最好而且是可以分割的。可以在mapred-site.xml或hive-site.xml中设置mapred.ouput.compression.type值为BLOCK。
Hive压缩实践
开启中间数据压缩功能
set hive.exec.compress.intermediate = true ;
修改中间压缩的默认编/解码器
set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.GZipCodec;
set hive.exec.compress.intermediate = true ;
可以使用dfs -cat 查看结果文件内容
开启输出结果压缩:
set hive.exec.compress.output = true ;
--该属性最终的压缩格式会以.deflate格式结尾的压缩文件
修改输出结果压缩使用的编解码器:
set hive.exec.compress.output = true ;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
--该属性设置最终的输出结果文件是以.gz格式的压缩文件
方便mapper和reducer以后对文件做处理,设置也是类型为BLOCK,并将查询结果以sequence file格式存储:
set mapred.output.compression.type=BLOCK;
set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
0 0
- 其他文件格式及压缩方法
- Hive编程指南10---其他文件格式和压缩方法
- Hive编程(十一)【其他文件格式和压缩方法】
- hive-文件格式和压缩方法
- BMP文件格式分析及 图像压缩
- BMP文件格式及RlE压缩算法
- MySQL源码分析(6):Innodb文件格式及压缩配置
- jpg,gif,png文件格式及区分方法
- 泛泰Bin文件格式解析及解压出IMG方法
- [DirectShow] 文件格式与压缩格式
- bmp文件格式压缩的代码
- DirectShow 文件格式与压缩格式
- bmp文件格式压缩的代码
- android压缩解压缩zip文件格式
- 关于短信内容格式及压缩方法
- C# 压缩及解压数据方法
- 打包和压缩及常见解压缩方法
- sql2008及以后版本,日志压缩方法
- android-Junit单元测试
- HiveQL:索引
- R.NET用于Excel Add-In的多实例(multi-Instance)问题及解决方法(2)
- 远程查询
- Select模型原理
- 其他文件格式及压缩方法
- 正式赛-ZZULIOJ-1882- 蛤玮的魔法
- CentOS 7
- NSMethodSignature和NSInvocation的使用
- Leetcode_104_Maximum Depth of Binary Tree
- Android 内存分析(简)
- Java中方法重写与方法重载
- Android项目开发实战之使用Fragment和FragmentTabHost搭建底部菜单(一)
- C++:undefined reference to vtable 原因与解决办法 [转]