• 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

  • 相关阅读:
    centos 安装 py 3.0+
    ubuntu下安装多版本Python
    DRF之注册器响应器分页器
    头部随着滚动高度的变化由透明慢慢变成不透明
    悬浮滚动
    判断某天是周几
    正则限制input只能输入大于0的数字
    原生js倒计时
    从两个时间段里分别计算出有几天工作日与周末
    sublime text3连续打出1到10的标签div
  • 原文地址:https://www.cnblogs.com/ryuham/p/4460197.html
Copyright © 2020-2023  润新知