当前位置: 首页 > news >正文

大数据学习(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 orctblproperties ("orc.compress"="snappy");

3)Parquet

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

create table orc_table(column_specs)stored as parquettblproperties ("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;

http://www.lryc.cn/news/192702.html

相关文章:

  • [sqoop]hive导入mysql,其中mysql的列存在默认值列
  • Stream流中的常用方法(forEach,filter,map,count,limit,skip,concat)和Stream流的特点
  • 2023大联盟2比赛总结
  • Flutter笔记:电商中文货币显示插件Money Display
  • 腾讯云上创建 对象存储cos
  • 微信小程序生成海报
  • stm32学习笔记:EXIT中断
  • css 块元素、行内元素、行内块元素相互转换
  • 【JUC】多线程基础概述
  • Git 回退代码的两种方法对比
  • Avalonia常用小控件Charts
  • 【Hugging Face】管理 huggingface_hub 缓存系统
  • Python学习基础笔记六十六——对象的方法
  • 建立一个新的高阶数学教授模式,知其然,知其用,知其之所以然,知其所以然
  • AtCoder ABC324G 启发式合并
  • SpringBootCMS漏洞复现分析
  • iOS- flutter flavor 多环境Configurations配置
  • 【PyTorchTensorBoard实战】GPU与CPU的计算速度对比(附代码)
  • npm 常用指令总结
  • 布朗大学发现GPT-4存在新问题,可通过非常见语言绕过限制
  • ESP32网络编程-TCP客户端数据传输
  • 微信小程序入门级
  • 博客文档续更(二)
  • Centos切换yum源
  • milvus和相似度检索
  • 龙迅LT7911UXC 是一款高性能TYPE-C/DP/EDP转换四端口MIPI/LVDS的芯片,还支持图像处理
  • TOR(Top of Rack)
  • 使用asp.net core web api创建web后台,并连接和使用Sql Server数据库
  • LaTeX 公式与表格绘制技巧
  • Spring Cloud--Nacos+@RefreshScope实现配置的动态更新