大数据学习(8)-hive压缩

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门

💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞


压缩

在Hive表中和计算过程中,保持数据的压缩,对磁盘空间的有效利用和提高查询性能都是十分有益的。

Hive表数据进行压缩

在Hive中,不同文件类型的表,声明数据压缩的方式是不同的。

1 )TextFile

若一张表的文件类型为TextFile,若需要对该表中的数据进行压缩,多数情况下,无需在建表语句做出声明。直接将压缩后的文件导入到该表即可,Hive在查询表中数据时,可自动识别其压缩格式,进行解压。

需要注意的是,在执行往表中导入数据的SQL语句时,用户需设置以下参数,来保证写入表中的数据是被压缩的。

--SQL语句的最终输出结果是否压缩

复制代码
set hive.exec.compress.output=true;

--输出结果的压缩格式(以下示例为snappy)

复制代码
set mapreduce.output.fileoutputformat.compress.codec =org.apache.hadoop.io.compress.SnappyCodec;

2 )ORC

若一张表的文件类型为ORC,若需要对该表数据进行压缩,需在建表语句中声明压缩格式如下:

复制代码
create table orc_table

(column_specs)

stored as orc

tblproperties ("orc.compress"="snappy");

3 )Parquet

若一张表的文件类型为Parquet,若需要对该表数据进行压缩,需在建表语句中声明压缩格式如下:

复制代码
create table orc_table

(column_specs)

stored as parquet

tblproperties ("parquet.compression"="snappy");

计算过程中使用压缩

1)单个MR的中间结果进行压缩

单个MR的中间结果是指Mapper输出的数据,对其进行压缩可降低shuffle阶段的网络IO,可通过以下参数进行配置:

--开启MapReduce中间数据压缩功能

复制代码
set mapreduce.map.output.compress=true;

--设置MapReduce中间数据数据的压缩方式(以下示例为snappy)

复制代码
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;

2)单条SQL语句的中间结果进行压缩

单条SQL语句的中间结果是指,两个MR(一条SQL语句可能需要通过MR进行计算)之间的临时数据,可通过以下参数进行配置:

--是否对两个MR之间的临时数据进行压缩

复制代码
set hive.exec.compress.intermediate=true;

--压缩格式(以下示例为snappy)

复制代码
set hive.intermediate.compression.codec= org.apache.hadoop.io.compress.SnappyCodec;
相关推荐
万邦科技Lafite13 分钟前
实战演练:通过API获取商品详情并展示
大数据·数据库·python·开放api接口
在未来等你21 分钟前
Elasticsearch面试精讲 Day 14:数据写入与刷新机制
大数据·分布式·elasticsearch·搜索引擎·面试
黄焖鸡能干四碗31 分钟前
智慧教育,智慧校园,智慧安防学校建设解决方案(PPT+WORD)
java·大数据·开发语言·数据库·人工智能
自强的小白1 小时前
vlan(局部虚拟网)
网络·学习
phac1231 小时前
git 如何直接拉去远程仓库的内容且忽略本地与远端不一致的commit
大数据·git·elasticsearch
一只乔哇噻1 小时前
java后端工程师进修ing(研一版 || day41)
java·开发语言·学习·算法
在未来等你1 小时前
Elasticsearch面试精讲 Day 11:索引模板与动态映射
大数据·分布式·elasticsearch·搜索引擎·面试
正在走向自律1 小时前
国产时序数据库选型指南-从大数据视角看透的价值
大数据·数据库·清华大学·时序数据库·iotdb·国产数据库
知识分享小能手1 小时前
React学习教程,从入门到精通,React 使用属性(Props)创建组件语法知识点与案例详解(15)
前端·javascript·vue.js·学习·react.js·前端框架·vue
在未来等你1 小时前
Kafka面试精讲 Day 14:集群扩容与数据迁移
大数据·分布式·面试·kafka·消息队列