MapReduce

 PS:内容来自开源力量公开课第二十四期-为何Hadoop是分布式大数据处理的未来&如何掌握Hadoop?的文档,算做简单了解,想花时间好好了解hadoop!

 

MapReduce原理1

问题:
求出以下数组当中最大的数
1,3,23,3,4,18,2,8,10,16,7,5

int Max(int a[], n)
{
    int m=0;
    for(int i=0; i<n; i++)
         if(m<a[i]) m=a[i];
    return m;
}

MapReduce原理2

MapReduce是一种编程模型,用于大规模数据集的并行计算。

 

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,通俗的说就是将一个大任务分成多个小任务并行完成,然后合并小任务的结果,得到最终结果。

MapReduce运行过程

通过将Map调用的输入数据自动分割为M个数据片段的集合,Map调用被分布到多台机器上执行。输入的数据片段能够在不同的机器上并行处理。使 用分区函数将Map调用产生的中间key值分成R个不同分区。例如,hash(key) mod R),Reduce调用也被分布到多台机器上执行。分区数量(R)和分区函数由用户来指定。

 

加油

 

///静下心来读书……

时间: 2024-11-10 00:28:35

MapReduce的相关文章

快速理解MapReduce

1 什么是MapReduce? Map本意可以理解为地图,映射(面向对象语言都有Map集合),这里我们可以理解为从现实世界获得或产生映射.Reduce本意是减少的意思,这里我们可以理解为归并前面Map产生的映射. 2 MapReduce的编程模型 按照google的MapReduce论文所说的,MapReduce的编程模型的原理是:利用一个输入key/value对集合来产生一个输出的key/value对集合.MapReduce库的用户用两个函数表达这个计算:Map和Reduce.用户自定义的Ma

客户端MapReduce提交到YARN过程(上)

在Mapreduce v1中是使用JobClient来和JobTracker交互完成Job的提交,用户先创建一个Job,通过JobConf设置好参数,通过JobClient提交并监控Job的进展,在JobClient中有一个内部成员变量JobSubmissionProtocol,JobTracker实现了该接口,通过该协议客户端和JobTracker通信完成作业的提交 public void init(JobConf conf) throws IOException { String track

如何利用mapreduce访问hbase数据

package com.mr.test; import java.io.IOException; import java.util.Iterator; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.KeyValue; imp

如何利用mapreduce批量读写hbase数据

package com.mr.test; import java.io.IOException; import java.util.Iterator; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.KeyValue; imp

用于简化MapReduce编程的Java库Apache Crunch简介

Apache Crunch(孵化器项目)是基于Google的FlumeJava库编写的Java库,用于创建MapReduce流水线.与其他用来创建 MapReduce作业的高层工具(如Apache Hive.Apache Pig和Cascading等)类似,Crunch提供了用于实现如连接数据.执行 聚合和排序记录等常见任务的模式库.而与其他工具不同的是,Crunch并不强制所有输入遵循同一数据类型.相反,Crunch 使用了一种定制的类型系统,非常灵活,能够直接处理复杂数据类型,如时间序列.H

C#中实现MapReduce方法

如果不知道MapReduce是怎么工作的,请看这里,如果不知道MapReduce是什么,请google之! 今天"闲"来无事,忽想起C#里没有MapReduce的方法,构思之,coding之: #region IEnumerable<T>.MapReduce public static Dictionary<TKey, TResult> MapReduce<TInput, TKey, TValue, TResult>( this IEnumerabl

Mapreduce实现矩阵乘法的算法思路

大数据计算中经常会遇到矩阵乘法计算问题,所以Mapreduce实现矩阵乘法是重要的基础知识,下文我尽量用通俗的语言描述该算法. 1.首先回顾矩阵乘法基础 矩阵A和B可以相乘的前提是,A的列数和B的行数相同,因为乘法结果的矩阵C中每一个元素Cij,是A的第i行和B的第j列做点积运算的结果,参见下图: 2.进入正题 在了解了矩阵乘法规则后,我们打算采用分布式计算模型Mapreduce来完成这一过程. MR过程是在Hadoop集群的多台机器上同时进行的,所以能MR化的计算必须是没有前后关系.相互独立的

MapReduce实现矩阵乘法:实现代码

编程环境: java version "1.7.0_40" Eclipse Kepler Windows7 x64 Ubuntu 12.04 LTS Hadoop2.2.0 Vmware 9.0.0 build-812388 输入数据: A矩阵存放地址:hdfs://singlehadoop:8020/workspace/dataguru/hadoopdev/week09/matrixmultiply/matrixA/matrixa A矩阵内容: 3 4 6 4 0 8 matrixa

MapReduce实现排序功能

期间遇到了无法转value的值为int型,我采用try catch解决 str22 str11 str33 str14 str47 str25 str39 用的\t隔开,得到结果 str11,4 str2 2,5 str3 3,9 str4 7 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ 我这里map,reduce都是单独出来的类,用了自定义的key package com.kane.mr; impo

MapReduce job在JobTracker初始化的源码级分析

mapreduce job提交流程源码级分析(三)中已经说明用户最终调用JobTracker.submitJob方法来向JobTracker提交作业.而这个方法的核心提交方法是JobTracker.addJob(JobID jobId, JobInProgress job)方法,这个addJob方法会把Job提交到调度器(默认是JobQueueTaskScheduler)的监听器JobQueueJobInProgressListener和EagerTaskInitializationListen