【hadoop】 3001-mapreduce并发框架思想

2023-11-29 04:32

本文主要是介绍【hadoop】 3001-mapreduce并发框架思想,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简述:MapReduce是什么?

1、MapReduce工作机制

它可以将计算任务拆分成大量可以独立运行的子任务,接着并行运算,另外会有一个系统调度的架构负责 收集汇总每个子任务的分析结果。其中 包含映射算法与规约算法。
MapReduce的主体是两个函数Map()和Reduce(),Map负责清洗数据,Reduce负责数据分析并输出最终结果,而且这两个功能之间并非一对一的关系,可以根据具体业务选择匹配关系。

如图是MapReduce的内部计算步骤





2、Map函数

输入:键值关系的数据队列,键是每段内容开头的偏移量

处理:从输入中抽取出自定义的关键字段。这个处理过程可以很简单,也可以很复杂。

输出:键值关系的数据队列,通常是保存在硬盘上,而不是HDFS中。因为这个数据集只是个中间过程,计算结束时需要被删除。

3、Reduce函数

输入:Map的输出结果经过MapReduce框架处理之后分发给Reduce函数,因为通常一个Reduce函数需要拿到完整的数据集之后才能开始分析。

处理:这一步的分析处理将是最为艰难和富有价值的环节。根据不同业务指标定义处理函数。

输出:输出自定义的格式文件,并且保存在HDFS上。

3、Combiner函数

输入: Map的输出结果未经过MapReduce框架处理之后直接传送 给Combiner函数
处理:Combiner函数着手做 合并归类排序等处理,经过处理之后,数据集大大缩小。避免在shuffle阶段进行数据的Group和Partition。
输出:这时的输出结果才传送给MapReduce架构处理中心。
解决问题: 减少带宽传输压力!



一、基本概念
进程:同一数据在不同进程之间并发进行,并发执行可以加快整体速度

线程:可以解决同步和异步的问题,但不能增加处理的速度

二、普通JAVA程序统计文本数据
思路
读取每行数据,采用HashMap存放每个单词对应的个数
例如:
=>新建文本wordcount.txt
hello world
hello you
=>程序处理结果
<hello,2>         
<world,1>
<you,1>
=>程序处理伪代码
v = get(k) ; if(v!=null){ v++;}; <k,v)

三、海量数据可以采用MapReduce并发执行,用于提高速度

1、分两步处理数据
Map: 不同进程之间并发执行
Reduce: 对Map的数据进行汇总

2、Mapreduce概述
2.1 Mapreduce是一种分布式计算模型,google提出,主要用于搜索领域,解决海量数据的计算问题
2.2 MR由两个阶段组成:Map和Reduce,用户只要实现map()和reduce()两个函数
2.3 Mapreduce原理
<k1,v1>---> Map --><k2,v2> ---> Group[K2,{v21,v22,v23},K1,{v11,v12,v13}], Partition--> Reduce--<k3,v3>
其中: Group为分组,Partition按照k进行排序
3、统一文本文件中每个单词出现的个数
需求内容:
新建一个文件命名wordcount.txt,其中的内容为
hello world
how are you 
I am fine 
thank you 
hello tom
my name is shenfl
I am a new student this term 



伪代码统计程序:
/**
* @param key : 偏移量
* @param value: 每一行数据
*/
map(key,value,context){
String[] vs = value.split(",");
for(String  v:vs){
context.write(v,1)
}


}

/**
* @param key: 经过k分组后内容
*/
reduce(key,valueList,context){
int count = 0;
for(int  i: valueList){
count += i;
}
context.write(key,count);
}
示例图方式模拟MR的map和reduce两个阶段,体现MR的并发框架的计算模型










这篇关于【hadoop】 3001-mapreduce并发框架思想的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431455

相关文章

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地