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

  • 相关阅读:
    GridView中获取UserControl Fred
    objectivec字符串类NSString的使用
    IPhone之AVAudioRecorder
    iPhone中用第三方工具(RegexKitLite)实现正则表达
    android实现底部菜单栏
    android 菜单设计
    Objective C内存管理——如何理解autorelease
    在iphone中使用正则表达式 — OgreKit 详解
    iphone开发者证书装多台电脑的方法
    iPhone sdk 4.0 正则表达式
  • 原文地址:https://www.cnblogs.com/ryuham/p/4460197.html
Copyright © 2011-2022 走看看