zoukankan      html  css  js  c++  java
  • MapReduce简介

    MapReduce:

    概念:MapReduce主要是分布式编程的一个编程模型

    优势:

    1、允许我们处理输入输出的限制

    2、他是个无共享架构,每个节点可以并行处理该节点上的数据, 无需包含其他节点的运行情况

    3、他能高效处理可能因为硬件问题造成的各种执行故障

    4、数据局部性,就是说代码找到数据所在节点,并在该节点对数 据进行处理

    5、他是从开发人员那里提炼分布是分层的一种办法。在编写程序时,不需要编写多线程程序。mapreduce确保代码能够获得不同节点上的数据,同时并行无间断的处理数据

    mapreduce流的六个阶段:

    1、input:mapper读取数据块

    2、split:mapper从基于记录的数据块中将每条记录传递给map函数(对记录的识别非常重要)

    3、mapping:mapper的业务逻辑会构成一张图

    4、shuffling:把多个节点上的具有相同key的mapper输出数据被聚合起来,重新排序,传送给一个单独的reducer

    5、reduceing:做最后的聚合工作,并将数据存储回HDFS

    6、final result:

    例如

    1、输入数据块

    hbase pig oozie

    hive hive oozie

    hbase hive pig

    2、执行split操作,生成key-value键:

    k1=0,v1=hbase pig oozie

    k2=16,v2=hive hive oozie

    k3=32,v3=hbase hive pig

    3、key-value建传输给mapper,生成list(k,v)

    【注意:mapper的执行结果写回执行处理程序的本地节点上,而不是写到HDFS上】

    4、根据key值,数据聚合,表达形式k,list(v)

    5、对结果继续执行聚集,聚集结果写进RDFS。

     

  • 相关阅读:
    企业付款到零钱,现金红包
    Ubuntu 添加,删除ppa
    Ubuntu16.04下的主题美化
    Mysql 统计查询
    crontab修改默认编辑器
    highcharts PHP中使用
    解决ubuntu开机进入grub界面的问题
    商城功能,助力商家
    PHP获取固定概率
    PHP概率,抽奖
  • 原文地址:https://www.cnblogs.com/chenyaling/p/5517353.html
Copyright © 2011-2022 走看看