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

mapreduce优化方法

1)数据输入:

        1)合并小文件:在执行mr任务前将小文件进行合并,大量的小文件会产生大量的map任务,增大map任务装载次数,而 任务的装载比较耗时,从而导致 mr 运行较慢。
        2)采用ConbinFileInputFormat来作为输入,解决输入端大量小文件场景。

2)map阶段

        1)减少spill次数:通过调整io.sort.mb及sort.spill.percent参数值,增大触发spill的内存上限,减少spill次数,从而减少磁
盘 IO。
        2)减少merge次数:通过调整io.sort.factor参数,增大merge的文件数目,减少merge的次数,从而缩短mr处理时间。
        3)在 map 之后先进行combine处理,减少 I/O。

3)reduce阶段

        1)合理设置map和reduce数:两个都不能设置太少,也不能设置太多。太少,会导致task等待,延长处理时间;太多, 会导致 map、reduce任务间竞争资源,造成处理超时等错误。
        2)设置map、reduce共存:调整slowstart.completedmaps参数,使map运行到一定程度后,reduce也开始运行,减少 reduce的等待时间。
        3)规避使用reduce,因为Reduce在用于连接数据集的时候将会产生大量的网络消耗。
        4)合理设置reduc端的buffer,默认情况下,数据达到一个阈值的时候,buffer中的数据就会写入磁盘,然后reduce会从
        磁盘中获得所有的数据。也就是说,buffer和reduce是没有直接关联的,中间多个一个写磁盘->读磁盘的过程,既然有这个弊端, 那么就可以通过参数来配置,使得buffer中的一部分数据可以直接输送到reduce,从而减少IO开销: mapred.job.reduce.input.buffer.percent,默认为0.0。当值大于0的时候,会保留指定比例的内存读buffer中的数据直接拿给reduce 使用。这样一来,设置buffer需要内存,读取数据需要内存,reduce计算也要内存,所以要根据作业的运行情况进行调整。

4)IO传输

        1)采用数据压缩的方式,减少网络IO的的时间。 安装Snappy和LZOP压缩编码器。
        2)使用SequenceFile二进制文件

5)数据倾斜问题

        1)数据倾斜现象
                数据频率倾斜——某一个区域的数据量要远远大于其他区域。
                数据大小倾斜——部分记录的大小远远大于平均值。
        2)如何收集倾斜数据
        在reduce方法中加入记录map输出键的详细情况的功能。
public static final String MAX_VALUES = "skew.maxvalues"; 
private int maxValueThreshold; 
@Override
public void configure(JobConf job) { maxValueThreshold = job.getInt(MAX_VALUES, 100); 
} @Override
public void reduce(Text key, Iterator<Text> values,
OutputCollector<Text, Text> output, 
Reporter reporter) throws IOException {int i = 0;
while (values.hasNext()) {values.next();
i++;
}if (++i > maxValueThreshold) {log.info("Received " + i + " values for key " + key);}
}
        3)减少数据倾斜的方法
                方法1:抽样和范围分区
                        可以通过对原始数据进行抽样得到的结果集来预设分区边界值。
                方法2:自定义分区
                另一个抽样和范围分区的替代方案是基于输出键的背景知识进行自定义分区。例如,如果map输出键的单词来源于一本书。 其中大部分必然是省略词(stopword)。那么就可以将自定义分区将这部分省略词发送给固定的一部分reduce实例。而将其他的 都发送给剩余的reduce例。
                方法3:Combine
使用Combine可以大量地减小数据频率倾斜和数据大小倾斜。在可能的情况下,combine的目的就 是聚合并精简数据。
结语:小编能力有限 欢迎大家多多指教

相关文章:

mapreduce优化方法

1&#xff09;数据输入&#xff1a; 1&#xff09;合并小文件&#xff1a;在执行mr任务前将小文件进行合并&#xff0c;大量的小文件会产生大量的map任务&#xff0c;增大map任务装载次数&#xff0c;而 任务的装载比较耗时&#xff0c;从而导致 mr 运行较慢。 2&#xff09;…...

06-nexus搭建Docker私仓

使用nexus创建docker私有仓库 Nexus的安装请参考该文档&#xff1a;https://www.yuque.com/tmfl/pom/uumrx2 Nexus配置Docker仓库步骤&#xff1b; nexus默认docker是失效的&#xff0c;需要 在security --> Realms&#xff0c;将docker配置成Active在 Repository 的 Blo…...

【RS专题】eval层混淆和逻辑完整分析 - 扣代码终结篇

如有侵权、联系本人下架 首先明确一下目标,我们要先获取网页200的源代码,RS5代第一次响应为412,第二次为200。如果是200就表示正常 以下为某 yjj RS5请求成功的结果,具体流程请看完文章,源-码–答-案也会在末 尾公 布 前面是定义了非常多和函数,一直往下拉,直到出现v…...

基于matlab使用主动声纳系统进行水下目标检测

一、前言 此示例演示如何模拟具有两个目标的主动单基地声纳方案。声纳系统由各向同性投影仪阵列和单个水听器元件组成。投影仪阵列呈球形。反向散射信号由水听器接收。接收到的信号包括直接和多路径贡献。 二、水下环境 在浅水环境中&#xff0c;声源和目标之间存在多个传播路径…...

[socket]hpsocket-pull模式

为什么要用pull模式呢&#xff0c;我不是所谓的别人说pull效率高&#xff0c;是因为包头的长度 int不是固定长度。服务器IO-HPSocket PUSH&#xff1a;收到数据立马触发OnReceive&#xff0c;由开发人员自己实现拆包和缓冲区的管理逻辑。 PULL&#xff1a;收到数据立马触发OnR…...

数据分析师 ---- SQL强化(3)

数据分析师 ---- SQL强化(3) 题目&#xff1a;每个月Top3的周杰伦歌曲 从听歌流水中找到18-25岁用户在2022年每个月播放次数top 3的周杰伦的歌曲 输入例子&#xff1a; drop table if exists play_log; create table play_log (fdate date,user_id int,song_id int ); inser…...

微信小程序商品分类页最佳实践

首先我们来分析下UI小妹发来的产品原型图&#xff1a; 微信小程序商品分类页需要实现 1.单击左边的商品类目&#xff0c;右侧实现联动跳转到对应商品类目标题&#xff1b; 2.触屏拖动右侧商品列表&#xff0c;右侧跳转到对应商品类目&#xff1b; 2.分析需求我们可以把屏幕分…...

正则化解决过拟合

本片举三个例子进行对比&#xff0c;分别是&#xff1a;不使用正则化、使用L2正则化、使用dropout正则化。 首先是前后向传播、加载数据、画图所需要的相关函数的reg_utils.py&#xff1a; # -*- coding: utf-8 -*-import numpy as np import matplotlib.pyplot as plt impor…...

在 Windows 上安装 Helm包

一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起学习在 Windows 上安装 Helm包。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、 Helm是什么 Helm是Kubernetes的包管理工具&#xff0c;类似于centos的yum&#xff0c;能够快速查找、下载和安装…...

Clion开发STM32之OTA升级模块(一)

什么是OTA 百度百科解释个人理解&#xff1a;就是不通过烧录的方式&#xff0c;通过串口、网口、无线对主板运行的程序进行升级。减少后期的一个维护迭代程序的一个成本。 STM32的OTA升级模块的一个设计 程序启动的一个框架流程图(大致流程) FLASH的一个划分框图 BootLoader…...

Java供应链安全检测SDL方法论

近些年,开源程序陆续爆出安全漏洞,轻则影响用户体验,重则业务应用沦陷。大量的业务应用以及每天数千次的迭代,使得自动检测和治理第三方开源程序成为企业安全建设的必要一环。如何来建设这一环呢?SCA(软件成分分析) 概念 什么是SCA? 源代码或二进制扫描的软件成分分析 什…...

Magic-API的部署

目录 概述简介特性 搭建创建元数据表idea新建spring-boot项目pom.xmlapplication.properties打包上传MagicAPI-0.0.1-SNAPSHOT.jar开启服务访问 magic语法 概述 简介 magic-api是一个基于Java的接口快速开发框架&#xff0c;编写接口将通过magic-api提供的UI界面完成&#xf…...

程序进制换算

进制数介绍 一、进制介绍 二进制 &#xff1a;0或1&#xff0c;满2进1&#xff0c;以0B或者0b开头&#xff0c;如 0b1101 八进制&#xff1a;0-7&#xff0c;满8进1&#xff0c;&#xff0c;以0开头&#xff0c;如0234 十进制&#xff1a;0-9&#xff0c;满10进1&#xff0c;…...

Packet Tracer - 使用 CLI 配置并验证站点间 IPsec VPN

Packet Tracer - 使用 CLI 配置并验证站点间 IPsec VPN 地址分配表 设备 接口 IP 地址 子网掩码...

【华为OD机试真题】最小的调整次数(python版)100%通过率 超详细代码注释 代码解读

【华为OD机试真题 2022&2023】真题目录 @点这里@ 【华为OD机试真题】信号发射和接收 &试读& @点这里@ 【华为OD机试真题】租车骑绿道 &试读& @点这里@ 最小的调整次数 知识点队列栈 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 有一个特异性…...

WPF中嵌入web网页控件 WebBrowser

1 WebBrowser特点 <font colorblue>WebBrowser控件内部使用IE的引擎&#xff0c;因此使用WebBrowser我们必须安装IE浏览器。 WebBrowser使用的是IE内核&#xff0c;许多H5新特性都不支持&#xff0c;然后使用谷歌内核和火狐内核会使软件的体积增加至几十MB。 <font c…...

Kafka原理之消费者

一、消费模式 1、pull(拉)模式(kafka采用这种方式) consumer采用从broker中主动拉取数据。 存在问题&#xff1a;如果kafka中没有数据&#xff0c;消费者可能会陷入循环中&#xff0c;一直返回空数据 2、push(推)模式 由broker决定消息发送频率&#xff0c;很难适应所有消费者…...

PCIe的capability扩展空间字段解释

解释 这是一段关于高级错误报告的信息&#xff0c;其中包含多个字段和值。以下是每个字段的详细解释&#xff1a; Capabilities: [100 v1] Advanced Error Reporting 这是该设备支持高级错误报告的能力标识符。 UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- R…...

力扣sql中等篇练习(二十)

力扣sql中等篇练习(二十) 1 寻找面试候选人 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 分为以下两者情况,分别考虑,然后union进行处理(有可能同时满足,需要去进行去重) # ①该用户在 三场及更多…...

【神经网络】tensorflow -- 期中测试试题

题目一&#xff1a;&#xff08;20分&#xff09; 请使用Matplotlib中的折线图工具&#xff0c;绘制正弦和余弦函数图像&#xff0c;其中x的取值范围是&#xff0c;效果如图1所示。 要求&#xff1a; (1)正弦图像是蓝色曲线&#xff0c;余弦图像是红色曲线&#xff0c;线条宽度…...

终极WebGL 3D图形开发指南:gl-matrix快速集成实战

终极WebGL 3D图形开发指南&#xff1a;gl-matrix快速集成实战 【免费下载链接】gl-matrix Javascript Matrix and Vector library for High Performance WebGL apps 项目地址: https://gitcode.com/gh_mirrors/gl/gl-matrix gl-matrix是一款专为高性能WebGL应用打造的Ja…...

前端 跨域解决方案

一、什么是跨域&#xff1f; 协议、域名、端口 三者有任意一个不一样&#xff0c;就是跨域。 浏览器出于安全考虑&#xff0c;会限制跨域请求&#xff0c;这就是同源策略&#xff08;Same-Origin Policy&#xff09;。 举例&#xff1a; https://www.baidu.com协议&#xff1a;…...

从多项式逼近到优化求解:泰勒展开与拉格朗日乘子的机器学习实践

1. 泰勒展开&#xff1a;机器学习的"局部望远镜" 第一次接触泰勒公式时&#xff0c;我的数学老师用了个有趣的比喻&#xff1a;这就像用乐高积木拼凑复杂雕塑的局部轮廓。在机器学习中&#xff0c;这个思想被广泛应用——当我们面对复杂的损失函数曲面时&#xff0c;…...

Java面试-test

test...

源码编译实战:定制rpath与interpreter实现高版本glibc程序向下兼容部署

1. 为什么需要高版本glibc程序向下兼容 最近在给客户部署AI推理服务时遇到一个典型问题&#xff1a;开发环境用的是Ubuntu 20.04&#xff08;glibc 2.31&#xff09;&#xff0c;而生产环境是CentOS 7&#xff08;glibc 2.17&#xff09;。直接拷贝编译好的程序运行时&#xff…...

新手必须掌握的6个Python爬虫库,非常实用!

Python中有非常多用于网络数据采集的库&#xff0c;功能非常强大&#xff0c;有的用于抓取网页&#xff0c;有的用于解析网页&#xff0c;这里介绍6个最常用的库。 1. BeautifulSoup BeautifulSoup是最常用的Python网页解析库之一&#xff0c;可将 HTML 和 XML 文档解析为树形…...

BGP路由优化实战:加速收敛,提升网络稳定性

BGP路由优化实战&#xff1a;加速收敛&#xff0c;提升网络稳定性在复杂的网络环境中&#xff0c;尤其是在大规模数据中心或跨区域互联的网络中&#xff0c;BGP&#xff08;Border Gateway Protocol&#xff09;路由协议的性能直接影响着网络的可用性和用户体验。BGP 作为互联网…...

快速掌握Fast-F1:Python赛车数据分析终极指南

快速掌握Fast-F1&#xff1a;Python赛车数据分析终极指南 【免费下载链接】Fast-F1 FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry 项目地址: https://gitcode.com/GitHub_Trending/fa/Fast-F1 想要…...

终极LoRaWAN服务器搭建指南:如何快速构建你的私有物联网网络

终极LoRaWAN服务器搭建指南&#xff1a;如何快速构建你的私有物联网网络 【免费下载链接】lorawan-server Compact server for private LoRaWAN networks 项目地址: https://gitcode.com/gh_mirrors/lo/lorawan-server 你是否想拥有一个完全可控的LoRaWAN物联网平台&…...

从潍坊一中赛题看算法竞赛中的数据类型陷阱与优化策略

1. 数据类型陷阱&#xff1a;从潍坊一中T1赛题看数值溢出问题 第一次参加算法竞赛的同学&#xff0c;90%都会在数据类型上栽跟头。就拿潍坊一中T1"揽月湖"这道题来说&#xff0c;表面是简单的数学表达式计算&#xff0c;实则是数据类型选择的经典案例。题目要求计算3…...