IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2021.10.18 - 尚硅谷大数据 - hadoop3.1.3 - 优化&新特性 -> 正文阅读

[大数据]2021.10.18 - 尚硅谷大数据 - hadoop3.1.3 - 优化&新特性

Hadoop数据压缩

概述

  • 压缩技术能有效减少HDFS读写字节数。
  • 在MR运行时,IO操作,网络数据传输,Shuffle,Merge要花大量的时间,尤其是数据规模很大和工作负载密集的情况下。
  • 数据压缩对于节省资源,最小化磁盘IO和网络传输非常有帮助。可以在任意MR阶段启用压缩。
  • 尽管压缩与解压缩的CPU开销不高,但是也有代价。

压缩策略和原则

  • 压缩是提高Hadoop运行效率的一种优化策略
  • 通过对Mapper、Reducer运行过程中的数据进行压缩,以减少磁盘IO,提高MR程序的运行速度
  • 采用压缩技术减少了磁盘IO,但同时也增加了CPU运算负担。所以,压缩特性运用得到能提高效率,运用不当也可能降低效率
  • 压缩基本原则:
    • 运算密集型job(CUP消耗高),少用压缩
    • IO密集型job(磁盘IO消耗高),多用压缩

MR支持的压缩编码

在这里插入图片描述
在这里插入图片描述

压缩方式的选择

Gzip压缩

  • 优点:压缩比率较高,压缩/解压缩效率较快,Hadoop本身支持,在应用中处理.gz格式的文件就像直接处理文本一样,大部分Linux系统都自带Gzip命令,使用方便。
  • 缺点:不支持Split
  • 应用场景:当每个文件压缩后在一个块大小以内时,都可以考虑用Gzip压缩格式。例如一天或者一小时的日志文件

Bzip2压缩

  • 优点:支持Split,具有很高的压缩比,比Gzip都高,Hadoop自带,使用方便
  • 缺点:压缩/解压缩速度慢

Lzo压缩

  • 优点:压缩/解压缩速度也比较快,压缩率比较合理,支持split,是Hadoop中最流行的压缩格式。可以在Linux里安装Lzop命令,使用也较为方便
  • 缺点:压缩率比Gzip要低一些,Hadoop本身不支持,需要安装;在应用中,对Lzo格式的文件需要做一些特殊处理(为了支持Split需要建立索引,还需要指定InputFormat为Lzo格式)
  • 应用场景:一个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个文件越大,Lzo有点越明显

Snappy压缩

  • 优点:高速压缩/解压缩速度,合理的压缩率
  • 缺点:不支持Split;压缩率比Gzip要低,Hadoop本身不支持,需要安装
  • 应用场景:当MR作业的Map输出的数据比较大时,作为Map到Reduce的中间数据的压缩格式,或者作为一个MR作业的输出和另外一个MR作业的输入

压缩位置的选择

在这里插入图片描述

各阶段采用压缩时,压缩参数的配置

在这里插入图片描述

Map输出端采用压缩

Driver:

// 开启map端输出压缩
conf.setBoolean("mapreduce.map.output.compress", true);
// 设置map端输出压缩方式
conf.setClass("mapreduce.map.output.compress.codec", BZip2Codec.class,CompressionCodec.class);

其余不变

Reduce输出端采用压缩

Driver:

// 设置reduce端输出压缩开启
FileOutputFormat.setCompressOutput(job, true);
// 设置压缩的方式
FileOutputFormat.setOutputCompressorClass(job, BZip2Codec.class);
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:57:30  更:2021-10-19 12:00:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 2:28:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码