大数据面试题:MapReduce压缩方式

2023-11-04

面试题来源:

《大数据面试题 V4.0》

大数据面试题V3.0,523道题,679页,46w字

可回答:1)Hadoop常见的压缩算法有哪些?

问过的一些公司:网易云音乐(2022.11),阿里(2020.08)

参考答案:

1、MapReduce支持的压缩方式

压缩格式 hadoop自带? 算法 文件扩展名 是否可切分 换成压缩格式后,原来的程序是否需要修改
DEFLATE 是,直接使用 DEFLATE .deflate 和文本处理一样,不需要修改
Gzip 是,直接使用 DEFLATE .gz 和文本处理一样,不需要修改
bzip2 是,直接使用 bzip2 .bz2 和文本处理一样,不需要修改
LZO 否,需要安装 LZO .lzo 需要建索引,还需要指定输入格式
Snappy 否,需要安装 Snappy .snappy 和文本处理一样,不需要修改

2、压缩性能比较

压缩算法 原始文件大小 压缩文件大小 压缩速度 解压速度
gzip 8.3GB 1.8GB 17.5MB/s 58MB/s
bzip2 8.3GB 1.1GB 2.4MB/s 9.5MB/s
LZO 8.3GB 2.9GB 49.3MB/s 74.6MB/s

3、压缩方式选择

压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片

Gzip压缩

优点:压缩率比较高,而且压缩/解压速度也比较快;Hadoop本身支持,在应用中处理Gzip格式的文件就和直接处理文本一样;大部分Linux系统都自带Gzip命令,使用方便。

缺点:不支持Split

应用场景:当每个文件压缩之后在130M以内的(1个块大小),都可以考虑使用Gzip压缩格式。例如一天或者一个小时的日志压缩成一个Gzip文件。

Bzip2压缩

优点:支持split;具有很高的压缩率,比gzip压缩率都高;hadoop本身支持,但不支持native;在linux系统下自带bzip2命令,使用方便。

缺点:压缩/解压速度慢;不支持native。

应用场景:适合对速度要求不高,但需要较高的压缩率的时候,可以作为mapreduce作业的输出格式;或者输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况;或者对单个很大的文本文件想压缩减少存储空间,同时又需要支持split,而且兼容之前的应用程序(即应用程序不需要修改)的情况 

Lzo压缩

优点:压缩/解压速度也比较快,合理的压缩率;支持split,是hadoop中最流行的压缩格式;可以在linux系统下安装lzop命令,使用方便。

缺点:压缩率比gzip要低一些;hadoop本身不支持,需要安装;在应用中对lzo格式的文件需要做一些特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)。

应用场景:一个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个文件越大,lzo优点越越明显

Snappy压缩

优点:高速压缩速度和合理的压缩率。

缺点:不支持split;压缩率比gzip要低;hadoop本身不支持,需要安装;

应用场景:当Mapreduce作业的Map输出的数据比较大的时候,作为Map到Reduce的中间数据的压缩格式;或者作为一个Mapreduce作业的输出和另外一个Mapreduce作业的输入

4、压缩位置选择

压缩可以在MapReduce作用的任意阶段启用

输入端采用压缩

在有大量数据并计划重复处理的情况下,应该考虑对输入进行压缩。然而,你无须显示指定使用的编解码方式。Hadoop自动检查文件扩展名,如果扩展名能够匹配,就会用恰当的编解码方式对文件进行压缩和解压。否则,Hadoop就不会使用任何编解码器。

mapper输出端采用压缩

当map任务输出的中间数据量很大时,应考虑在此阶段采用压缩技术。这能显著改善内部数据Shuffle过程,而Shuffle过程在Hadoop处理过程中是资源消耗最多的环节。如果发现数据量大造成网络传输缓慢,应该考虑使用压缩技术。可用于压缩mapper输出的快速编解码器包括LZO或者Snappy。

reducer输出采用压缩

在此阶段启用压缩技术能够减少要存储的数据量,因此降低所需的磁盘空间。当mapreduce作业形成作业链条时,因为第二个作业的输入也已压缩,所以启用压缩同样有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据面试题:MapReduce压缩方式 的相关文章

  • STDIN 或文件作为 Hadoop 环境中的映射器输入?

    因为我们需要将一堆文件读入映射器 在非 Hadoop 中 环境 我用的os walk dir and file open path mode 读入 每个文件 然而 在 Hadoop 环境中 当我读到 HadoopStreaming 转换 将
  • 在spark中设置textinputformat.record.delimiter

    在 Spark 中 可以设置一些 hadoop 配置设置 例如 System setProperty spark hadoop dfs replication 1 这有效 复制因子设置为 1 假设是这种情况 我认为这种模式 在常规 hado
  • Hadoop 减少多种输入格式

    我在 HDFS 中有两个数据格式不同的文件 如果我需要减少两个数据文件 那么作业设置会是什么样子 例如想象一下常见的字数统计问题 在一个文件中使用空格作为世界分隔符 在另一个文件中使用下划线 在我的方法中 我需要针对各种文件格式使用不同的映
  • 我的 cdh5.2 集群在运行 hbase MR 作业时出现 FileNotFoundException

    我的 cdh5 2 集群运行 hbase MR 作业时出现问题 例如 我将 hbase 类路径添加到 hadoop 类路径中 vi etc hadoop conf hadoop env sh 添加行 export HADOOP CLASSP
  • Hive 左外连接长期运行

    Hortonworks HDP 2 3 0 Hive 0 14 Table T1 partition on col1 no bucket ORC 应用程序 1 2 亿行和 6GB 数据大小Table T2 partition on col2
  • 仅使用一个映射器的 Hadoop gzip 输入文件[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 hadoop 不能分割一个大文本文件 然后使用 gzip 压缩分割的内容 https stackoverflow com questions 6511255 why cant hadoop s
  • 使用 MongoDB 的 MapReduce 选择不同的多个字段

    我想在 MongoDB 上执行这个 SQL 语句 SELECT DISTINCT book author from library 到目前为止 MongoDB 的 DISTINCT 一次仅支持一个字段 对于多个字段 我们必须使用 GROUP
  • 使用 MultipleOutputs 写入 MapReduce 中的 HBase

    我目前有一个 MapReduce 作业 它使用 MultipleOutputs 将数据发送到多个 HDFS 位置 完成后 我使用 HBase 客户端调用 在 MR 之外 将一些相同的元素添加到一些 HBase 表中 使用 TableOutp
  • 为什么map任务总是运行在单节点上

    我有一个具有 4 个节点的完全分布式 Hadoop 集群 当我将作业提交给 Jobtracker 时 Jobtracker 认为 12 个映射任务对我的工作来说很酷 但奇怪的事情发生了 这 12 个映射任务始终在单个节点上运行 而不是在整个
  • 两个相等的组合键不会到达同一个减速器

    我正在使用 MapReduce 框架用 Java 制作 Hadoop 应用程序 我仅使用文本键和值进行输入和输出 在减少最终输出之前 我使用组合器进行额外的计算步骤 但我有一个问题 钥匙没有进入同一个减速器 我在组合器中创建并添加键 值对
  • Hadoop 性能

    我安装了hadoop 1 0 0并尝试了字数统计示例 单节点集群 完成时间为 2 分 48 秒 然后我尝试了标准的 Linux 字数统计程序 该程序在同一组 180 kB 数据 上运行只需 10 毫秒 是我做错了什么 还是 Hadoop 非
  • 映射减少计数示例

    我的问题是关于mapreduce programming in java 假设我有 WordCount java 示例 一个标准mapreduce program 我希望map函数收集一些信息 并返回形成如下的reduce函数map
  • Hive 上的自定义 MapReduce 程序,规则是什么?输入和输出怎么样?

    我被困了几天 因为我想根据我在 hive 上的查询创建一个自定义的地图缩减程序 在谷歌搜索后我发现没有太多例子 而且我仍然对规则感到困惑 创建自定义 MapReduce 程序的规则是什么 映射器和减速器类怎么样 任何人都可以提供任何解决方案
  • mongodb 聚合随机化(shuffle)结果

    我正在浏览一堆 mongo 文档 但找不到洗牌或随机化结果内容的可能性 有没有 特别是对于聚合框架本身来说 实际上并没有任何本地方法 因为还没有可用的运算符来执行诸如生成随机数之类的操作 因此 无论您可能投射一个字段进行排序的任何匹配 都不
  • Hive ParseException - 无法识别“结束”“字符串”附近的输入

    尝试从现有 DynamoDB 表创建 Hive 表时出现以下错误 NoViableAltException 88 at org apache hadoop hive ql parse HiveParser IdentifiersParser
  • Spark scala - 按数组列分组[重复]

    这个问题在这里已经有答案了 我对 Spark Scala 很陌生 感谢你的帮助 我有一个数据框 val df Seq a a1 Array x1 x2 a b1 Array x1 a c1 Array x2 c c3 Array x2 a
  • 在映射器的单个输出上运行多个减速器

    我正在使用地图缩减实现左连接功能 左侧有大约 6 亿条记录 右侧有大约 2300 万条记录 在映射器中 我使用左连接条件中使用的列来创建键 并将键值输出从映射器传递到减速器 我遇到性能问题 因为两个表中的值数量都很高的映射器键很少 例如分别
  • Riak 在 MapReduce 查询中失败。使用哪种配置?

    我正在与 riak riak js 结合开发一个 nodejs 应用程序 并遇到以下问题 运行此请求 db mapreduce add logs run 正确返回存储在存储桶日志中的所有 155 000 个项目及其 ID logs 1GXt
  • 无法在 Hadoop Map-Reduce 作业中加载 OpenNLP 句子模型

    我正在尝试将 OpenNLP 集成到 Hadoop 上的 Map Reduce 作业中 从一些基本的句子分割开始 在地图函数中 运行以下代码 public AnalysisFile analyze String content InputS
  • 运行 Sqoop 导入和导出时如何找到最佳映射器数量?

    我正在使用 Sqoop 版本 1 4 2 和 Oracle 数据库 运行 Sqoop 命令时 例如这样 sqoop import fs

随机推荐

  • linux安装yum报错Unable to locate package yum解决方案

    为什么80 的码农都做不了架构师 gt gt gt 问题 apt get install yum Reading package lists Done Building dependency tree Reading state infor
  • Flutter 实现九宫格抽奖动画效果

    一 本文实现的九宫格抽奖动画效果如下 二 主要分享下怎么一步一步来实现这个效果 源代码地址 布局可以通过GridView轻松实现 只需在数据源的第五个位置插入一个元素用来标识是开始按钮 抽奖动画的实现 需要按顺时针循环选中奖品而且还需要从慢
  • 小程序酷炫动态登录页源码(动态水滴)

    1 页面效果 登陆页面一般都要酷炫好看一点 这里分享一个动态登录页面 页面有三个流动的小水滴 一个水滴放登录框 剩下两个水滴跳转页面和打开弹窗 2 代码内容
  • opencv KCF追踪报错

    tracker gt update dstImage1 roi 刷新ROI的位置 在这一句报错 后来发现update 中的dstimage1没有经过处理 把之前对image进行的 转换颜色空间 二值化 开闭运算 canny运算 又进行一遍
  • ssh无法远程连接ubuntu系统,提示"System is booting up. See pam_nologin(8)"

    问题 使用ssh xshell或者putty 远程连接Linux ubuntu 系统时 提示 System is booting up See pam nologin 8 Connection closing Socket close 无法
  • 浅聊便利蜂

    便利蜂是一家以新型便利店为主体的科技创新零售企业 公司以科技为核心驱动运营 以 品质生活 便利中国 为己任 怀抱 小小幸福 在你身边 的初心 为中国消费者提供优质 健康 安心的产品和高效 便捷 满意的服务 便利蜂由北京自由蜂电子商务有限公司
  • 网络流dinic算法复杂度

    Dinic算法的时间复杂度的理论上界是O N2 M N是结点数 M是边数 但实际上Dinic算法比这个理论上界好得多 如果所有边容量均为1 那么时间复杂度是O min N0 67 M0 5 M 对于二分图最大匹配这样的特殊图 时间复杂度是O
  • antV-G2图标的label如何显示,如何自定义样式

    chart interval position 号位 平均分 这里开始设置label label 平均分 val gt return position middle offset 0 content originData gt return
  • 常见架构对比

    1 单体架构 概念 所有的模块集中在一个项目中 打包到一起并放在一个web容器中运行 适合场景 项目初创期 业务简单且响应要求高 优点 开发 测试 部署运维简单 响应快 缺点 1 资源没法隔离 2 部署周期长 3 可靠性低所有模块都集中在一
  • nestjs:docker build时执行npm install sharp提示downloading libvips socket hang up

    问题 如题 参考 sharp High performance Node js image processing 参考chinese mirror处理 原因 默认是从github上下载libvips库 但是使用socket协议 linux下
  • STM32 进阶教程 6 -  汇编与C混合编程

    前言 在嵌入式开发过程中 有时候为了追求代码性能与效率不得不采用汇编语言来编写代码 但是汇编代码在阅读时表现不如C语言友好 本节给大家介绍一种新的方法 关键代码用汇编语言时行实现 然后用C语言时行接封装 用C语言与汇编语言混合编程的方式 在
  • DELL T420塔式服务器RAID配置及OS安装

    一 DELL T420塔式服务器RAID配置 1 服务器RAID卡配置 开机看到CTRL R的提示后及时按下CTRL R进到阵列卡配置界面 进去之后光标默认就在阵列卡型号上 比如 PERC H310 PERC H710 PERC H710P
  • C++装饰者模式:Decorator Pattern

    设计原则 类应该对扩展开发 对修改关闭 装饰者可以在所委托被装饰者的行为之后加上自己的行为 以达到特定的目的 装饰者模式 动态地将责任附加到对象上 若要扩展功能 装饰者提供了比继承更有弹性的替代方案 装饰者和被装饰者必须是一样的类型 也就是
  • 多目标跟踪算法之SORT

    本文首发于微信公众号 DeepDriving 欢迎关注 简介 SORT是2016年发表的一篇文章 Simple Online and Realtime Tracking 中提出的一个经典的多目标跟踪算法 该算法结合常用的卡尔曼滤波器和匈牙利
  • 服务器128g内存显示64g,64g内存服务器

    64g内存服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 接口名称GetCloudPhoneServerModel
  • httprunner 3.x学习1 - 环境安装与准备

    前言 httprunner 3 x最大的改变是执行用例用的是 python 的 pytest 框架 支持3种格式的用例 YAML JSON pytest 代码 对比 httprunner 2 x 以前版本 早期版本用的是 unittest
  • el-select 默认值显示value不显示label问题

    el select 默认值显示value不显示label问题 在做编辑页面时 需要取到列表项数据回显默认值 在做select回显的时候遇到了这个问题 明明拿到的值和value中的值一样 但是就是不转换成label 这种情况一般出现在valu
  • 清除苹果服务器位置,苹果桌面三大清理工具_服务器评测与技术-中关村在线

    值得庆幸的是 Mac App Store的有三个应用程序 可以帮助你整理桌面 保证你的桌面整洁干净 前两者都是免费的 在桌面上扫描文件和文件夹时 只要一个命令 就能按照你的原设置整理文件夹 第三虽然是付费但是功能强大 能够隐藏你的文件 即保
  • 测试框架pytest教程(2)-用例依赖库-pytest-dependency

    对于 pytest 的用例依赖管理 可以使用 pytest dependency 插件 该插件提供了更多的依赖管理功能 使你能够更灵活地定义和控制测试用例之间的依赖关系 Using pytest dependency pytest depe
  • 大数据面试题:MapReduce压缩方式

    面试题来源 大数据面试题 V4 0 大数据面试题V3 0 523道题 679页 46w字 可回答 1 Hadoop常见的压缩算法有哪些 问过的一些公司 网易云音乐 2022 11 阿里 2020 08 参考答案 1 MapReduce支持的