• DFS & MapReduce


    Google Example

    • 200亿+网页 * 20kb = 400+ TB
    • 1台计算机硬盘读取速度为30 ~ 35 mb/s
    • 要读取4个月

    截止至2006年8月,谷歌已经有450000台机器了。

    Challenges for Large-scale Computing

    • 怎么分配计算?
    • 如何设计简易的分布式编程模型?
    • 如何机器故障处理?

    Idea and Solution

      Idea:

        接近数据的计算

        对数据进行多个备份

      MapReduce被用来解决这些问题

    Storage Infrastructure

      Problem:

        如果节点宕机,如何保持存储数据

      Answer:

        分布式文件系统:GFS(Google File System)、HDFS(Hadoop Distributed File System)

      Typical usage pattern:

        巨大的文件(几百GB到TB)

        数据很少更新,或者说只是单纯将新数据追加到尾部

        常用于读取和附加的数据

    Distributed File System

    • 块状服务群:

        文件备份成连续的块

        一般每块16 ~ 64 mb

        每块进行复制(2、3次)

        保持在不同机架上存在副本

    • 主节点(Master Node)
    • 服务器端的文件访问接口:

        向主节点请求查看服务块

        与服务块直接连接来访问数据

    • 可靠的分布式系统:

        数据以“块”分布在机器中

    Programming Model: MapReduce

    顺序读取大量的数据。

      Map:

        提取你敢兴趣的数据(Group by key, Sort an Shuffle)

      Reduce:

        总结、归纳、过滤或转换

    The Map Step

    Map任务将输入变成“键—值”对应的序列。 

    The Reduce Step

    Reduce将“键—值”进行合并优化。 

  • 相关阅读:
    J2ME开发及JBuilder工具的应用
    Oracle 的入门心得
    Java多线程程序设计初步
    网线制作
    手机死机的原因简析
    SIM简介
    谈谈J2ME的几个重要的功能
    手机应该放哪里 如何把危害的程度降到最低
    彩信的基本原理
    oracle学习笔记
  • 原文地址:https://www.cnblogs.com/justany/p/2774271.html
Copyright © 2020-2023  润新知