Mapreduce----<<数学之美>>

本文通过矩阵乘法实例解析了MapReduce的工作原理。利用《数学之美》中的方法,将矩阵分解并分配到多台计算机上进行计算,完成Map过程;随后汇总各部分结果得到最终答案,实现Reduce过程。


吴军老师(吴军老师的个人主页)的《数学之美》第29章,用大白话给出了Mapreduce根本原理。

将一个大任务拆分成小的任务,并且完成子任务的计算,这个过程叫做Map

将中间结果合并成最终结果,这个过程叫做Reduce

______________________________________________________________________________________________________________________________________

首先,看一个最基本的问题:矩阵的乘法。

要实现矩阵乘法的MapReduce,只要能够理解分块矩阵相乘就可以了,已知矩阵

其中:

矩阵

,那么


下面我们将矩阵和矩阵分块,有太多方法,我这里还是拿《数学之美》中矩阵分块的方法。将矩阵按列分为块,矩阵按行分为块,即:


其中

那么显然:

这时候,我们就可以准备台计算机,每一台计算机计算一个,这就是Map的过程,然后,再把这台计算机上的结果加和,就是Reduce的过程。

————————————————————————————————————————————————————————————————————————————

后续,会加上常用的机器学习算法的MapReduce过程。


软件介绍: 并行性分析的数学原理:与现代并行处理计算机相伴而生,从20世纪70年代起,并行性分析的理论研究和工程实践业已走过40余年的光辉历程(附录1)。先驱者依据各自对并行性的理解,发挥各自长期形成的数学优势,采取各色各样的数学观点,研制出各具特色的分析工具,为并行机的推广应用作出了贡献。本书以作者几十年贯穿于“下标追踪法一元素视图一数据相关性’’的理论研究,以及在我国某两种并行机序列中的工程实践为基础,几乎涵盖所有历史上出现过的研究成果,统一到“公理一定义一引理一定理一证明一推论一应用”的演绎系统里,形成工程技术领域不多见的像非欧几何那样缜密、可靠的演绎理论,并且把它们及时地反哺工程实践以创造效益。依托并行处理技术的各类巨型计算机,是并行性分析理论的首要服务对象;迄今为止,它们的首要任务是求解各类关系国计民生的战略课题。所以,正确性与可靠性始终居第一位。建立演绎体系,无疑是其恰当的保证。    本书前13章由我撰写,其运行环境以SIMD/SPMD为主,MIMD为辅;最后一章“并行死锁的静态检测是我的“下标追踪法一元素视图一数据相关性”理论体系与时俱进的发展,其运行环境则彻底迁移到MIMD。“下标追踪法一元素视图一数据相关性”的主体,诞生于作者在国防科技大学计算机系研制某巨型机期间;经过总装系统所研制某实时操作系统的升华,到中科院软件所,尤其是其综合信息系统技术国防重点实验室为我系统地总结~归纳,提高、发展这些成果达到理论上的完整,提供了优越的科研条件和宽松的科研环境;
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>bigdata</groupId> <artifactId>bigdata</artifactId> <version>0.0.1-SNAPSHOT</version> <name>bigdata</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Hadoop MapReduce核心依赖 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>2.7.3</version> </dependency> <!-- Hadoop公共依赖 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version> </dependency> <!-- HDFS依赖 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.3</version> </dependency> </dependencies> <!-- 构建配置(打包+编译) --> <build> <plugins> <!-- 1. 指定Jar包的主类(MapReduce Driver类) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <!-- 替换为你的Driver类全限定名(如bigdata.bigdata.maxnum.MyMaxNum) --> <mainClass>bigdata.maxnum.MyMaxNum</mainClass> </manifest> </archive> </configuration> </plugin> <!-- 2. 指定JDK编译版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> </project> 看看有没有问题
最新发布
12-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值