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. zoj2760(最大流)
  2. sublime python3 输入换行不结束
  3. 关闭linux远程桌面,[Linux]Ubuntu 16.04 远程桌面(简单暴力)
  4. [并发编程] - Executor框架#ThreadPoolExecutor源码解读01
  5. [android] 隐式意图的配置
  6. mysql dsn 连接_各种数据库的连接串(总结DSN的使用方法)
  7. Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
  8. getReadableDatabase() 和 getWritableDatabase()的区别
  9. 超有用的 java面试题
  10. 消息发送和接收基本应用
  11. [zz]Linux操作系统下三种配置环境变量的方法
  12. 办公室中有一台计算机连接打印机,办公室就一个打印机,怎么让多个电脑一起用...
  13. cobalt strike
  14. tomcat 部署指南
  15. DOC命令小问题~~+理解
  16. java 获取保存存储路径配置文件
  17. AUC评价指标的理解以及其为何能衡量二分类模型优劣——复习篇
  18. Java根据模板导出PPT
  19. cocos2d - JS Sprite 镜像反转显示 ( Flipped )
  20. 小学三年级计算机导学案,小学三年级下册科学导学案

热门文章

  1. requests + bs4爬取新闻标题及内容
  2. 前端基础之JavaScript
  3. 3.Java Web之JavaScript实战
  4. 蓝桥杯STM32G431学习之TIM程序设计(四)
  5. 一致性Hash算法(JAVA版)(摘抄至五月的仓颉的博客)
  6. Eclipse设置成黑色背景(黑色主题)
  7. 【阿里云】云监控CPU、磁盘使用率告警、手机企微机器人告警
  8. 肘方法确定聚类数k_肘方法确定KMeans聚类的最佳K值
  9. 计算机音乐数字乐谱九九八十一,九九八十一
  10. python和anaconda区别_anaconda与conda的区别