将文件split

文件1:                                                                   分割结果:

hello  world                                                   <0, "hello world">

this is wordcount                                           <12,"this is wordcount">

文件2:

hello china                                                     <0,"hello china">

hello IT                                                           <12,"hello IT">

测试文件较小,所以一般测试文件就是一个split

MapReduce 框架完成了以上分割

Then,将分割好的<key ,value > 交给用户自定义的map 方法进行处理,生成新的<key,value>:

<0, "hello world">                        map()                <hello,1> <world,1>

<12,"this is wordcount">             map()                 <this,1> <is,1> <wordcount,1>

<0,"hello china">                         map()                 <hello,1> <china,1>

<12,"hello IT">                            map()                  <hello,1><IT,1>

map() reduce() 中间有个shuffle :

<hello,1> <world,1>                         shuffle ()             <hello,1>

<this,1> <is,1> <wordcount,1>        shuffle ()              <is,1>

<wordcount,1>

<world,1>

<hello,1> <china,1>                         shuffle ()              <china,1>

<hello,1> <IT,1>                               shuffle ()               <hello,1>

<hello,1>

<IT,1>

分组,将相同的key 合并在一起:

<hello,1>                        <hello,list(1)>

<is,1>                             <is,list(1)>

<wordcount,1>               <wordcount,list(1)>

<world,1>                      <world,list(1)>

<china,1>                        <china,list(1)>

<hello,1>

<hello,1>                          <hello,list(2)>

<IT,1>                             <IT,1>

<china,list(1)>

<hello,list(1,2)>

<is,list(1)>

<wordcount,list(1)>

<world,list(1)>

<IT,list(1)>

得到最新的<key,value> 之后,再交给用户的reduce()方法,得到最新的<key,value >,并组为wordcount 的结果输出:

<china,1>

<hello,3>

<is,1>

<wordcount,1>

<world,1>

<IT,1>

Hadoop Mapreduce中wordcount 过程解析的更多相关文章

  1. MapReduce 示例:减少 Hadoop MapReduce 中的侧连接

    摘要:在排序和reducer 阶段,reduce 侧连接过程会产生巨大的网络I/O 流量,在这个阶段,相同键的值被聚集在一起. 本文分享自华为云社区<MapReduce 示例:减少 Hadoop ...

  2. 三.hadoop mapreduce之WordCount例子

    目录: 目录见文章1 这个案列完成对单词的计数,重写map,与reduce方法,完成对mapreduce的理解. Mapreduce初析 Mapreduce是一个计算框架,既然是做计算的框架,那么表现 ...

  3. Hadoop Mapreduce 案例 wordcount+统计手机流量使用情况

    mapreduce设计思想 概念:它是一个分布式并行计算的应用框架它提供相应简单的api模型,我们只需按照这些模型规则编写程序,即可实现"分布式并行计算"的功能. 案例一:word ...

  4. Hadoop : MapReduce中的Shuffle和Sort分析

    地址 MapReduce 是现今一个非常流行的分布式计算框架,它被设计用于并行计算海量数据.第一个提出该技术框架的是Google 公司,而Google 的灵感则来自于函数式编程语言,如LISP,Sch ...

  5. Mapreduce中maptask过程详解

    一.Maptask并行度与决定机制 1.一个job任务的map阶段的并行度默认是由该任务的大小决定的: 2.一个split切分分配一个maprask来并行处理: 3.默认情况下,split切分的大小等 ...

  6. Hadoop MapReduce的Shuffle过程

    一.概述 理解Hadoop的Shuffle过程是一个大数据工程师必须的,笔者自己将学习笔记记录下来,以便以后方便复习查看. 二. MapReduce确保每个reducer的输入都是按键排序的.系统执行 ...

  7. Hadoop MapReduce中压缩技术的使用

    Compression and Input Splits   当我们使用压缩数据作为MapReduce的输入时,需要确认数据的压缩格式是否支持切片?   假设HDFS中有一个未经压缩的大小为1GB的文 ...

  8. Hadoop Mapreduce中shuffle 详解

    MapReduce 里面的shuffle:描述者数据从map task 输出到reduce task 输入的这段过程 Shuffle 过程: 首先,map 输出的<key,value >  ...

  9. Hadoop Mapreduce 中的Partitioner

    Partitioner的作用的对Mapper产生的中间结果进行分片,以便将同一分组的数据交给同一个Reduce处理,Partitioner直接影响Reduce阶段的负载均衡. MapReduce提供了 ...

随机推荐

  1. CSS(五)

    定位 关于定位 我们可以使用css的position属性来设置元素的定位类型,postion的设置项如下: relative 生成相对定位元素,元素所占据的文档流的位置不变,元素本身相对文档流的位置进 ...

  2. __x__(5)0905第二天__网页三大组成部分

    根据 W3C 标准,将网页主要分成 3 个部分:结构,表现,行为. 结构: HTML 用于描述页面结构. 表现: CSS 用于控制页面中元素的样式. 行为: JavaScript 用于响应用户操作.

  3. 切换controller 后面的最好不要用id参数,不然会根据路由规则改变

    //切换actionResult             return RedirectToAction("Edit", "EngineeringCase",  ...

  4. css学习_cs3s旋转的图片

    1.   ,鼠标移开后图片面向屏幕后又自动可见了. 2.css3动画 !!定义好动画后再引用 4.多组动画(百分比) 案例: 案例2----无缝滚动

  5. 好大一个坑: EF Core 异步读取大字符串字段比同步慢100多倍

    这两天遇到一个奇怪的问题,通过 EF/EF Core 查询数据库速度奇慢,先是在传统的 ASP.NET 项目中遇到(用的是EF6.0),后来将该项目迁移至 ASP.NET Core 也是同样的问题(用 ...

  6. 自动化测试如何使用driver.findElements去操作页面元素

    当你要操作的元素页面有很多个的时候,如下图这样,你想使用".datagrid-row-expander.datagrid-row-expand"这个cssSelector,这个时候 ...

  7. 如何关闭git pull产生的merge 信息

    编辑 ~/.gitconfig [core] mergeoptions = --no-edit 或者终端之行 git config --global core.mergeoptions --no-ed ...

  8. XP下ubuntu双系统安装方法

    利用u盘将iso刻录 从u盘启动 连续按alt+f2 进入ubuntu试用 打开终端 输入 sudo umount -l /cdrom sudo umount -l /isodevice 然后安装un ...

  9. Netty入门(一):零基础“HelloWorld”详细图文步骤

    因为接下来的项目要用到netty,所以就了解一下这个程序,奈何网上的教程都是稍微有点基础的,所以,就写一篇对于netty零基础的,顺便也记录一下. 先扔几个参考学习的网页: netty 官方API:  ...

  10. django创建命令及配置

    创建项目django-admin startproject XXX(项目名字)运行项目 python manage.py runserver创建子应用python manage.py startapp ...