上次新霸哥给大家介绍了一些hadoop的相关知识,发现大家对hadoop有了一定的了解,但是还有很多的朋友对mapreduce很模糊,下面新霸哥将带你共同学习mapreduce编程模型。

  mapreduce编程模型可以利用大量的商用服务器构成大规模集群来解决处理千兆级别的数据量问题。mapreduce编程模型有两个比较独立的步骤,分别是map和reduce

  map:比较常见的就是数据初始读取和转换的步骤,同时在这个步骤中,每个独立的输入数据记录都进行并行处理。

  Reduce: 一个数据整合或者加和的步骤,值得注意的是,相关联的所有数据记录要放在一个计算节点来处理。

  新霸哥注意到了Hadoop系统中MapReduce的核心思路是:将输入的数据在逻辑上分割成多个数据块,其中每个逻辑数据块被Map任务单独地处理。data块处理后所得结果会被划分到不同的数据集,且将data集排序完成。每个经过排序的数据集传输到Reduce任务进行处理。

  当在处理大数据的时候,我们可以尝试使用MapReduce来解决这个计数问题

  假设有一个多台服务器组成的集群供我们使用,假设该集群的计算节点数量为五十,每台服务其上都会运行非常多的Map处理,假设有10000个file,这样就会有10000个Map处理这些file,在给定的时间内,我们假设有多少个CPU核,就会有多少个Map在同时进行。集群的服务器是十六核的,所以可以有十六个Map同事运行,这样每台服务器负责运行三十万个Map处理,整个数据处理过程中,每个计算节点都会运行十个Mapper,共3万个迭代(每次迭代过程可以运行十六个Mapper,一个CPU运行一个Mapper)

  每个Mapper处理一个file,抽取file的单词,输出<{WORD},1>键值对

  假设我们只有一个Reduce,这个假设不是必须的,只是默认的设定,实际应用的场景中我们根据需求常常需要改变。

  Reduce接收<{WORD},[1,…,1]>这样的键值对

  Reduce每处理一个一样的单词,就将该单词的计数加一,最终得到单词的总数,然后按照以下键值对格式输出:<{WORD},{单词总数}>

  最后排序输出结果。

  上面就是一个非常完整的例子,如果你在学习中还遇到过一些其他的问题欢迎和新霸哥一起交流学习。

mapreduce编程模型你知道多少?的更多相关文章

  1. MapReduce 编程模型

    一.简单介绍 1.MapReduce 应用广泛的原因之中的一个在于它的易用性.它提供了一个因高度抽象化而变得异常简单的编程模型. 2.从MapReduce 自身的命名特点能够看出,MapReduce ...

  2. MapReduce编程模型详解(基于Windows平台Eclipse)

    本文基于Windows平台Eclipse,以使用MapReduce编程模型统计文本文件中相同单词的个数来详述了整个编程流程及需要注意的地方.不当之处还请留言指出. 前期准备 hadoop集群的搭建 编 ...

  3. MapReduce编程模型简介和总结

    MapReduce应用广泛的原因之一就是其易用性,提供了一个高度抽象化而变得非常简单的编程模型,它是在总结大量应用的共同特点的基础上抽象出来的分布式计算框架,在其编程模型中,任务可以被分解成相互独立的 ...

  4. [转]Hadoop集群_WordCount运行详解--MapReduce编程模型

    Hadoop集群_WordCount运行详解--MapReduce编程模型 下面这篇文章写得非常好,有利于初学mapreduce的入门 http://www.nosqldb.cn/1369099810 ...

  5. MapReduce 编程模型概述

    MapReduce 编程模型给出了其分布式编程方法,共分 5 个步骤:1) 迭代(iteration).遍历输入数据, 并将之解析成 key/value 对.2) 将输入 key/value 对映射( ...

  6. MapReduce编程模型及其在Hadoop上的实现

    转自:https://www.zybuluo.com/frank-shaw/note/206604 MapReduce基本过程 关于MapReduce中数据流的传输过程,下图是一个经典演示:  关于上 ...

  7. 批处理引擎MapReduce编程模型

    批处理引擎MapReduce编程模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MapReduce是一个经典的分布式批处理计算引擎,被广泛应用于搜索引擎索引构建,大规模数据处理 ...

  8. MapReduce 编程模型 & WordCount 示例

    学习大数据接触到的第一个编程思想 MapReduce.   前言 之前在学习大数据的时候,很多东西很零散的做了一些笔记,但是都没有好好去整理它们,这篇文章也是对之前的笔记的整理,或者叫输出吧.一来是加 ...

  9. 【MapReduce】二、MapReduce编程模型

      通过前面的实例,可以基本了解MapReduce对于少量输入数据是如何工作的,但是MapReduce主要用于面向大规模数据集的并行计算.所以,还需要重点了解MapReduce的并行编程模型和运行机制 ...

随机推荐

  1. 截取linux文件存储路径方法

    1.截取linux文件存储路径方法 package com.tydic.eshop.action.freemarker; public class dddd { public static void ...

  2. js获取项目根路径

    //js获取项目根路径,如: http://localhost:8083/uimcardprj function getRootPath(){ //获取当前网址,如: http://localhost ...

  3. hbase-0.94.16 在hadoop-1.2.1的安装配置

    1. ZooKeeper的安装: ZooKeeper是一个分布式的服务框架.可用于处理分布式的一些数据管理问题,如统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等. 步骤如下: a. 准 ...

  4. [转]c/c++输入函数

    最全输入函数 c/c++ 一: c=getchar(); 功能:读入一个字符 说明:调用此函数时要求在程序的第一行有预编译命令:#include<stdio>,不过在做c++时 有#inc ...

  5. hdu - 1010 Tempter of the Bone (dfs+奇偶性剪枝) && hdu-1015 Safecracker(简单搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 这题就是问能不能在t时刻走到门口,不能用bfs的原因大概是可能不一定是最短路路径吧. 但是这题要过除了细心 ...

  6. Makefile简介

    1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.假设我们有下面一个非常简单的源程序(hello.c):in ...

  7. laravel重要概念和知识点

    Service Provider: 一个laravel service provider就是一个注册IoC container binding的类.实际上,laravel本身就自包含了一堆管理核心框架 ...

  8. R语言实战读书笔记(一)R语言介绍

    1.3.3 工作空间 getwd():显示当前工作目录 setwd():设置当前工作目录 ls():列出当前工作空间中的对象 rm():删除对象 1.3.4 输入与输出 source():执行脚本

  9. hdu4638 group 树状数组

    连接:http://acm.hdu.edu.cn/showproblem.php?pid=4638 题意:就给给你n个数(大小在1-n里),然后给你连续的可以构成一个块,再给你N个询问,每个询问一个l ...

  10. S2sh整合MAven项目所需坐标大全

    <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> & ...