全方位揭秘!大数据从0到1的完美落地之Hive压缩
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压缩相关推荐
- 全方位揭秘!大数据从0到1的完美落地之Hive自定义函数
自定义函数 自定义函数介绍 hive的内置函数满足不了所有的业务需求.hive提供很多的模块可以自定义功能,比如:自定义函数.serde.输入输出格式等.而自定义函数可以分为以下三类: 1)UDF:u ...
- 全方位揭秘!大数据从0到1的完美落地之Hive介绍
Hive定义 Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并可以使用类似SQL的方式来对数据文件进行读写以及管理.这套Hive SQL 简称HQL.Hive的 ...
- 全方位揭秘!大数据从0到1的完美落地之Hive分桶
分桶的概述 为什么要分桶 数据分区可能导致有些分区数据过多,有些分区数据极少.分桶是将数据集分解为若干部分(数据文件)的另一种技术. 分区和分桶其实都是对数据更细粒度的管理.当单个分区或者表中的数据越 ...
- 全方位揭秘!大数据从0到1的完美落地之Hive企业级调优
Hive企业级调优 调优原则已经在MR优化阶段已经有核心描述,优化Hive可以按照MR的优化思路来执行 优化的主要考虑方面: 环境方面:服务器的配置.容器的配置.环境搭建 具体软件配置参数: 代码级别 ...
- 全方位揭秘!大数据从0到1的完美落地之Hive窗口函数
窗口函数 窗口函数over简介 先来看一下这个需求:求每个部门的员工信息以及部门的平均工资.在mysql中如何实现呢 求部门平均工资 select deptno ,avg(sal) from emp ...
- 全方位揭秘!大数据从0到1的完美落地之Hive分区
分区简介 为什么分区 Hive的Select查询时,一般会扫描整个表内容.随着系统运行的时间越来越长,表的数据量越来越大,而hive查询做全表扫描,会消耗很多时间,降低效率.而有时候,我们需求的数据只 ...
- 全方位揭秘!大数据从0到1的完美落地之Hive存储格式
hive的存储格式 hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储. 第一类: 纯文本文件存储 textfile: 纯文本文件存储格式,不压缩,也是hive的默认存储格式,磁盘开销 ...
- 全方位揭秘!大数据从0到1的完美落地之Hive查询操作
Hive基本查询语法 基本使用规则 基本查询语句组成 select .. from ..join [tableName] on ..where ..group by ..having ..order ...
- 全方位揭秘!大数据从0到1的完美落地之Hive视图
hive的视图 简介 hive的视图简单理解为逻辑上的表 hive只支持逻辑视图,不支持物化视图 视图存在的意义 对数据进行局部暴露(涉及隐私的数据不暴露) 简化复杂查询 创建视图: create v ...
最新文章
- zoj2760(最大流)
- sublime python3 输入换行不结束
- 关闭linux远程桌面,[Linux]Ubuntu 16.04 远程桌面(简单暴力)
- [并发编程] - Executor框架#ThreadPoolExecutor源码解读01
- [android] 隐式意图的配置
- mysql dsn 连接_各种数据库的连接串(总结DSN的使用方法)
- Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
- getReadableDatabase() 和 getWritableDatabase()的区别
- 超有用的 java面试题
- 消息发送和接收基本应用
- [zz]Linux操作系统下三种配置环境变量的方法
- 办公室中有一台计算机连接打印机,办公室就一个打印机,怎么让多个电脑一起用...
- cobalt strike
- tomcat 部署指南
- DOC命令小问题~~+理解
- java 获取保存存储路径配置文件
- AUC评价指标的理解以及其为何能衡量二分类模型优劣——复习篇
- Java根据模板导出PPT
- cocos2d - JS Sprite 镜像反转显示 ( Flipped )
- 小学三年级计算机导学案,小学三年级下册科学导学案