zoukankan      html  css  js  c++  java
  • MapReduce和Hadoop流

    MapReduce:分布式计算的框架

    MapReduce是一个软件框架,可以将单个计算作业分配给多台计算机执行。

        MapReduce在大量节点组成的集群上运行。它的工作流程是:单个作业被分成很多小份,输入数据也被切片分发到每个节点,各个节点只在本地数据上做运算,对应的代码称为mapper,这个过程被称作map阶段。每个mapper的输出通过某种方式组合(一般还会做排序)。排序后的结果再被分成小份分发到各个节点进行下一步处理工作。第二步的处理阶段被称为reduce阶段,对应的运行代码被称为reducer。reducer的输出就是程序的最终执行结果。

        MapReduce的整个编配工作由主节点(master node)控制。这些主节点控制整个MapReduce作业编配,包括每份数据存放的节点位置,以及map,sort和reduce等阶段的时序控制等。此外,主节点还要包含容错机制。一般的,每份mapper的输入数据会同时分发到多个节点形成多份副本,用于事务的失效处理。

    MapReduce的学习要点:

    ·主节点控制MapReduce的作业流程

    ·MapReduce的作业可以分成map任务和reduce任务

    ·map任务之间不做数据交流,reduce任务也一样

    ·在map和reduce阶段中间,有一个sort或combine阶段

    ·数据被重复放在不同的机器上,以防某个机器失效

    ·mapper和reducer传输的数据形式为key/value对

    Hadoop流

    Hadoop可以运行Java之外的其他语言编写的分布式程序。

    Hadoop流很像Linux系统中的管道(管道使用符号|,可以将一个命令的输出作为另一个命令的输入)

    例如:

    cat inputFile.txt | python mapper.py | sort | python reducer.py > outputFile.txt

  • 相关阅读:
    windows服务等获取文件路径文件目录方法
    推荐几款很棒的 JavaScript 表单美化和验证插件
    在网站制作中随时可用的10个 HTML5 代码片段
    SQLServer数据排序
    SQL Join的一些总结
    3.14(链表练习)
    链表
    基数排序
    hdu-1198(并查集)
    hdu-1207(规律推导)
  • 原文地址:https://www.cnblogs.com/ryuham/p/4460197.html
Copyright © 2011-2022 走看看