网站建设都有什么工作要做,新零售,网站建设多少时间,建设和同城类似的网站压缩
在Hive表中和计算过程中#xff0c;保持数据的压缩#xff0c;对磁盘空间的有效利用和提高查询性能都是十分有益的。 Hive表数据进行压缩
在Hive中#xff0c;不同文件类型的表#xff0c;声明数据压缩的方式是不同的。
1#xff09;TextFile
若一张表的文件类型…压缩
在Hive表中和计算过程中保持数据的压缩对磁盘空间的有效利用和提高查询性能都是十分有益的。 Hive表数据进行压缩
在Hive中不同文件类型的表声明数据压缩的方式是不同的。
1TextFile
若一张表的文件类型为TextFile若需要对该表中的数据进行压缩多数情况下无需在建表语句做出声明。直接将压缩后的文件导入到该表即可Hive在查询表中数据时可自动识别其压缩格式进行解压。
需要注意的是在执行往表中导入数据的SQL语句时用户需设置以下参数来保证写入表中的数据是被压缩的。
--SQL语句的最终输出结果是否压缩
set hive.exec.compress.outputtrue;
--输出结果的压缩格式以下示例为snappy
set mapreduce.output.fileoutputformat.compress.codec org.apache.hadoop.io.compress.SnappyCodec;
2ORC
若一张表的文件类型为ORC若需要对该表数据进行压缩需在建表语句中声明压缩格式如下
create table orc_table(column_specs)stored as orctblproperties (orc.compresssnappy);
3Parquet
若一张表的文件类型为Parquet若需要对该表数据进行压缩需在建表语句中声明压缩格式如下
create table orc_table(column_specs)stored as parquettblproperties (parquet.compressionsnappy);
计算过程中使用压缩
1单个MR的中间结果进行压缩
单个MR的中间结果是指Mapper输出的数据对其进行压缩可降低shuffle阶段的网络IO可通过以下参数进行配置
--开启MapReduce中间数据压缩功能
set mapreduce.map.output.compresstrue;
--设置MapReduce中间数据数据的压缩方式以下示例为snappy
set mapreduce.map.output.compress.codecorg.apache.hadoop.io.compress.SnappyCodec;
2单条SQL语句的中间结果进行压缩
单条SQL语句的中间结果是指两个MR一条SQL语句可能需要通过MR进行计算之间的临时数据可通过以下参数进行配置
--是否对两个MR之间的临时数据进行压缩
set hive.exec.compress.intermediatetrue;
--压缩格式以下示例为snappy
set hive.intermediate.compression.codec org.apache.hadoop.io.compress.SnappyCodec;