[Hive]Hive表文件压缩介绍
目录
压缩
(1)压缩概述
(2)开启Map输出阶段压缩
(3)开启Reduce输出阶段压缩
(4)创建表时指定压缩格式
压缩
(1)压缩概述
MR支持的压缩编码
为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器
压缩性能的比较
假如有一个表:
create table emp_t(
id int,
name String,
deptno int)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
stored as textfile;
(2)开启Map输出阶段压缩
开启map输出阶段压缩可以减少job中Map和Reduce task间数据传输量。具体配置如下:
案例实操:
开启hive中间传输数据压缩功能
set hive.exec.compress.intermediate=true;
开启mapreduce中map输出压缩功能
set mapreduce.map.output.compress=true;
设置mapreduce中map输出数据的压缩方式
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
执行查询语句
select count(1) as name from emp_t;
(3)开启Reduce输出阶段压缩
当Hive将输出写入到表中时,输出内容同样可以进行压缩。属性hive.exec.compress.output控制着这个功能。用户可能需要保持默认设置文件中的默认值false,这样默认的输出就是非压缩的纯文本文件了。用户可以通过在查询语句或执行脚本中设置这个值为true,来开启输出结果压缩功能。
案例实操:
开启hive最终输出数据压缩功能,默认false
set hive.exec.compress.output=true;
开启mapreduce最终输出数据压缩,默认false
set mapreduce.output.fileoutputformat.compress=true;
设置mapreduce最终数据输出压缩方式,
默认:mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.DeflateCodec
set mapreduce.output.fileoutputformat.compress.codec =org.apache.hadoop.io.compress.SnappyCodec
设置mapreduce最终数据输出压缩为块压缩(NONE 、RECORD、BLOCK)
set mapreduce.output.fileoutputformat.compress.type=BLOCK;
刚创建表时,hdfs中没有文件
插入数据后插入数据,文件格式为snappy:
insert into emp_t(id,name,deptno)values(1,'zhangsan',1);
关闭mapreduce压缩后插入数据,文件格式为textfile:
insert into emp_t(id,name,deptno)values(2,'zhangsan',1);
(4)创建表时指定压缩格式
创建表时指定压缩格式和通过设置Reduce输出阶段压缩的功能一样。
create table emp_t1(id int,name String,deptno int)row format delimitedfields terminated by ','collection items terminated by '-'map keys terminated by ':'STORED AS orc tblproperties ("orc.compress"="Snappy");插入数据:insert into emp_t1(id,name,deptno)values(2,'zhangsan',1);
查看HDFS的文件:
[Hive]Hive表文件压缩介绍相关推荐
- pyspark操作hive分区表以及.gz.parquet和part-00000文件压缩问题
文章目录 pyspark 操作hive表 1> `saveAsTable`写入 2> `insertInto`写入 2.1> 问题说明 2.2> 解决办法 3>`save ...
- Hive内部表与外部表区别详细介绍
文章转载自:http://www.aboutyun.com/thread-7458-1-1.html 1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表 ...
- HIVE表的迁移(外部表到内部表并压缩数据)
Hive表迁移至压缩表: 1. 压缩方式选择(经测试选择snappy) 2. 创建Hive内部表(主要是后面Rename的时候可以将location改成对应的位置) CREATE **TABLE** ...
- SmartNews:基于 Flink 加速 Hive 日表生产的实践
简介: 将 Flink 无缝地集成到以 Airflow 和 Hive 为主的批处理系统的技术挑战和应对方案. 本文介绍了 SmartNews 利用 Flink 加速 Hive 日表的生产,将 Flin ...
- hive增量表和全量表_基于 Flink + Hive 构建流批一体准实时数仓
基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环.Hive 数仓有很高的成熟度和稳定性,但由于它是离线的,延时很大.在一些对延时要求比较高的场景,需要另外搭建基于 Flink 的实时 ...
- hive查看表中列的信息命令_快速了解hive
作者丨HappyMint 文章选摘:大数据与人工智能 这是作者的第7篇文章 本文主要针对从事大数据分析和架构相关工作,需要与hive打交道但目前对hive还没有进行深层次了解的小伙伴,希望本文会让你对 ...
- S3c2440A WINCE平台HIVE注册表+binfs的实现
今天最大的收获莫过于把binfs和hive注册表同时在三星的平台上实现了,这可是前无古人啊(只是看到好多哥们说找不到三星的HIVE资料),哈哈哈.怕今天的成果日后成炮灰,还是写下来比较好,要养成这样的 ...
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...
- S3c2440A平台HIVE注册表+binfs的实现
我的例子是基于samsung S3C2440A+samsung ONENAND+WinCE5.0的,开发平台是platform builder 5.0,首先我们基于RAM register的image ...
最新文章
- linux下卸载自带jdk,重新安装jre运行环境
- 从零开始用Python构造决策树(附公式、代码)
- 阿里云双十一1折,1C2G 1年仅99 !!一起来拼团!
- mysql sqlserver分页_SQLServer常用分页方式
- r shiny app的学习和使用,这个我认为是作为大学生最适合的入门网页开发工具!!!
- javaweb网关_Java网关服务-AIO(三)
- 造成内存泄漏_如何造成内存泄漏
- docker基本镜像添加mysql_Docker的Centos7容器配置Tomcat和MySQL并打成基础镜像
- 奥多朗WIFI 插座
- 苹果手机怎么识别文字
- 最全面的应届毕业生落户上海指南(2021)
- 剪辑师的基本素养--了解四种特写类型
- 独立性检验的基本思想和初步应用
- 团队建设:如何打造一个优秀的团队
- 安邦金融:99%的人都不知道,原来保险还可以这样配置
- NGUI的动态字体dynamicFont的制作
- 软件工程导论课程作业——网上二手书店需求分析
- Linux_终端命令大全
- 【MicroPython ESP32】1.8“tft ST7735驱动3Dcube图形显示示例
- STL——1、各类容器迭代器失效总结