Hive的压缩

HQL语句最终会被编译成Hadoop的Mapreduce job,因此hive的压缩设置,实际上就是对底层MR在处理数据时的压缩设置。

hive在map阶段的压缩

map阶段的设置, 就是在MapReduce的shuffle阶段对mapper产生的中间结果数据压缩 。 在这个阶段,优先选择一个低CPU开销的算法。

<!-- 指定要不要开启中间压缩 -->
<property><name>hive.exec.compress.intermediate</name><value>false</value>
</property><!-- 指定中间压缩想要使用的压缩编码器(类文件) -->
<property><name>hive.intermediate.compression.codec</name><value/>
</property><!-- 指定压缩编码器中的那种压缩类型 -->
<property><name>hive.intermediate.compression.type</name><value/>
</property>

hive在reduce阶段的压缩

即对reduce阶段的输出数据进行压缩设置。

<!-- 指定要不要开启最终压缩。 -->
<property><name>hive.exec.compress.output</name><value>false</value>
</property>注意:如果开启,默认使用中间压缩配置的压缩编码器和压缩类型。

常用压缩格式

压缩格式 压缩比 压缩速度 需要安装 支持切分
bzip2 最高
gzip 很高 比较快
snappy 比较高 很快
lzo 比较高 很快 是(需要建立索引)

压缩编码器:

压缩格式 压缩编码器
deflate org.apache.hadoop.io.compress.DefaultCodec
gzip org.apache.hadoop.io.compress.GzipCodec
bzip2 org.apache.hadoop.io.compress.BZip2Codec
lzo com.hadoop.compression.lzo.LzopCodec(中间输出使用)
snappy org.apache.hadoop.io.compress.SnappyCodec(中间输出使用)

案例测试:

-- 开启中间压缩机制
hive (mydb)> set hive.exec.compress.intermediate=true;
-- 设置中间压缩编码器
hive (mydb)> set hive.intermediate.compression.codec=org.apache.hadoop.io.compress.DefaultCodec;
-- 设置压缩类型
hive (mydb)> set hive.intermediate.compression.type=RECORD;
-- 开启reduce端的压缩机制
hive (mydb)> set hive.exec.compress.output=true;create external table if not exists stocks_seq_2 (
exchange1 string,
symbol string,
ymd string,
price_open float,
price_high float,
price_low float,
price_close float,
volume int,
price_adj_close float
)
row format delimited
fields terminated by ','
stored as sequencefile;--动态加载数据:
insert into stocks_seq_2 select * from stocks_1;验证数据是否变小了..........

全方位揭秘!大数据从0到1的完美落地之Hive压缩相关推荐

  1. 全方位揭秘!大数据从0到1的完美落地之Hive自定义函数

    自定义函数 自定义函数介绍 hive的内置函数满足不了所有的业务需求.hive提供很多的模块可以自定义功能,比如:自定义函数.serde.输入输出格式等.而自定义函数可以分为以下三类: 1)UDF:u ...

  2. 全方位揭秘!大数据从0到1的完美落地之Hive介绍

    Hive定义 Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并可以使用类似SQL的方式来对数据文件进行读写以及管理.这套Hive SQL 简称HQL.Hive的 ...

  3. 全方位揭秘!大数据从0到1的完美落地之Hive分桶

    分桶的概述 为什么要分桶 数据分区可能导致有些分区数据过多,有些分区数据极少.分桶是将数据集分解为若干部分(数据文件)的另一种技术. 分区和分桶其实都是对数据更细粒度的管理.当单个分区或者表中的数据越 ...

  4. 全方位揭秘!大数据从0到1的完美落地之Hive企业级调优

    Hive企业级调优 调优原则已经在MR优化阶段已经有核心描述,优化Hive可以按照MR的优化思路来执行 优化的主要考虑方面: 环境方面:服务器的配置.容器的配置.环境搭建 具体软件配置参数: 代码级别 ...

  5. 全方位揭秘!大数据从0到1的完美落地之Hive窗口函数

    窗口函数 窗口函数over简介 先来看一下这个需求:求每个部门的员工信息以及部门的平均工资.在mysql中如何实现呢 求部门平均工资 select deptno ,avg(sal) from emp ...

  6. 全方位揭秘!大数据从0到1的完美落地之Hive分区

    分区简介 为什么分区 Hive的Select查询时,一般会扫描整个表内容.随着系统运行的时间越来越长,表的数据量越来越大,而hive查询做全表扫描,会消耗很多时间,降低效率.而有时候,我们需求的数据只 ...

  7. 全方位揭秘!大数据从0到1的完美落地之Hive存储格式

    hive的存储格式 hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储. 第一类: 纯文本文件存储 textfile: 纯文本文件存储格式,不压缩,也是hive的默认存储格式,磁盘开销 ...

  8. 全方位揭秘!大数据从0到1的完美落地之Hive查询操作

    Hive基本查询语法 基本使用规则 基本查询语句组成 select .. from ..join [tableName] on ..where ..group by ..having ..order ...

  9. 全方位揭秘!大数据从0到1的完美落地之Hive视图

    hive的视图 简介 hive的视图简单理解为逻辑上的表 hive只支持逻辑视图,不支持物化视图 视图存在的意义 对数据进行局部暴露(涉及隐私的数据不暴露) 简化复杂查询 创建视图: create v ...

最新文章

  1. 关于文件的默认读取和保存路径(转)
  2. Spark SQL使用window进行统计
  3. truncate、rename函数的使用
  4. 流程图 3条泳道 决策_制定透明决策的三步流程
  5. ansys18安装以后打不开_【偷偷告诉你】在微信里直接安装apk.1
  6. STM32Cube_FW_F1_V1.0.0固件库学习(四)外部中断 中
  7. 关于有偿提供拼图响应式后台的通知.
  8. Linux下安装yum源
  9. JAVA小项目--商品管理系统
  10. 扫描仪上显示服务器连接错误代码,扫描仪 常见问题解决方法
  11. 神策数据杨宁:券商财富管理数字化转型客户全生命周期(视频解读)
  12. 网络安全之僵尸网络与蠕虫的学习笔记
  13. NLP数据增强;中文数据增强包;一键中文数据增强
  14. 计算机网速单位是什么,计算机存储单位和网络网速单位
  15. 华为平板鸿蒙发布,华为新款平板与P50一同发布!有望搭载鸿蒙系统
  16. “bang” in JavaScript
  17. VMware16安装MacOS【详细教程】
  18. 查看锐捷poe交换机供电状态_锐捷 RG-S2910-24GT4SFP-UP-H 24个电口支持PoE和PoE+供电交换机...
  19. 线程函数参数(LPVOID Param)
  20. php连接mysql测试脚本,php MySQL连接测试

热门文章

  1. 【互动】针对 Windows 8.1预览版 与win8的大家的看法
  2. 王者之争-谁是浏览器速度王者?
  3. 信息学竞赛中的数学知识 --- 容斥原理
  4. 惠普台式电脑引导不了系统_惠普电脑开机没有USB启动项怎么办
  5. Windows注册表各个作用
  6. Windows7和Windows2008R2的比较
  7. 随机数生成方法及其应用
  8. YuXi1130数组综合练习代码
  9. JVM使用SIGSEGV优化空值检测
  10. 偶然出现 segmentation fault 时的调试方法与 SIGSEGV 信号