1、开启hive作业mapreduce任务中间压缩功能:

对于数据进行压缩可以减少job中map和reduce task间的数据传输量。对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩率高的编解码器重要很多。hadoop压缩的默认编解码器是DefaultCodec,可以通过设置参数mapred.map.output.compression.codec来进行相应调整,这是一个hadoop配置项,可以在hadoop mapred-site.xml文件更改或hive-site.xml文件进行更改。SnappyCodec是一个比较好的编解码器,拥有低cpu开销和好的压缩率。

开启中间数据压缩需要设置参数:

hive.exec.compress.intermediate的值为true;

mapred.map.output.compression.codec为org.apache.hadoop.io.compress.SnappyCodec:

 <property>

                <name>hive.exec.compress.intermediate</name>

                <value>true</value>

        </property>

    <property>

                <name>mapred.map.output.compression.codec</name>

                <value> org.apache.hadoop.io.compress.SnappyCodec </value>

        </property>

注意:hadoop开启中间压缩参数为mapred.compress.map.output。

2、开启hive作业最终输出结果压缩功能:

当hive将输出写入到表中时,输出内容同样可以进行压缩。通过设置属性hive.exec.compress.output为true控制输出结果压缩。用户可能需要保持默认设置false,然后通过在查询语句或执行脚本中设置这个值为true启用输出结果压缩功能。当参数hive.exec.compress.output设置为true时,需要为其制定一个编解码器,对于输出文件使用Gzip是个不错的选择,因为可以大大减小压缩文件的大小。但是,需要注意的是Gzip压缩文件对于后边mapreduce job而言是不可分割的。

启用结果压缩设置参数:

set hive.exec.compress.output=true;

set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

可能的一个hive作业的设置如下:

set mapred.max.split.size=100000000;
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

set hive.exec.reducers.bytes.per.reducer=1000000000;

set hive.exec.reducers.max=256;

set hive.merge.mapfiles=true;

set hive.merge.mapredfiles =ture;

set hive.merge.size.per.task=256000000;

set hive.merge.smallfiles.avgsize=16000000;

set hive.exec.compress.intermediate=true;

set mapred.map.output.compression.codec= org.apache.hadoop.io.compress.SnappyCodec;

set hive.exec.compress.output=true;

set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

select deptno,count(1) from emp group by deptno;

最新文章

  1. 推荐几个Web前端开发实用的Chrome插件
  2. 网页边框样式与style样式部分总结
  3. 第一个Android程序
  4. VS2012/2013/2015关闭单击文件进行预览的功能
  5. 打开网页自动弹出QQ临时会话 (打开网站弹出QQ聊天) qq.js文件代
  6. live555学习经验链接二
  7. Java学习笔记——设计模式之二.策略模式
  8. zTree学习实例
  9. 标准输入输出 stdio 流缓冲
  10. UNIX环境高级编程——system V信号量
  11. 第一节:EF Core简介和CodeFirst和DBFirst两种映射模式(以SQLite和SQLServer为例)
  12. .net core 摸索之路
  13. pytorch中tensorboardX的用法
  14. DDD实战进阶第一波(十三):开发一般业务的大健康行业直销系统(订单上下文领域逻辑)
  15. flask多个app应用组合
  16. CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
  17. SQL Server 2000中的并行处理和执行计划中的位图运算符
  18. [转]Phantomjs实现获取网页快照并生成缩略图
  19. ArcGIS的网络分析
  20. ④ 设计模式的艺术-04.抽象工厂(Abstract Factory)模式

热门文章

  1. MATLAB 求一个点周围 voronoi 边的顶点的坐标
  2. 交流绕组 &amp; 感应电机
  3. C# List 转 Tree 公共方法
  4. .net core使用CSRedisCore连接哨兵集群,并用作redis使用分布式缓存。
  5. 二、openfeign生成并调用客户端动态代理对象
  6. rem em min-width: 30em 的意思
  7. 正则表达式字符&amp;使用
  8. Feign报错&#39;xx.FeignClientSpecification&#39;, defined in null, could not be registered.
  9. C# - 配置动态更新
  10. 支付宝手机网站支付(基于Java实现支付宝手机网站支付)