Skip to content

Latest commit

 

History

History
135 lines (94 loc) · 3.39 KB

BigData.md

File metadata and controls

135 lines (94 loc) · 3.39 KB

www.yuanfudao.com

大数据处理


先修要求

  • 分布式系统基础知识
  • 数据库基础知识

学习目标

  • 了解GFS和MapReduce
  • 了解Hadoop项目
  • 了解Spark计算模型

阅读材料


讨论大纲


GFS

  • 设计目标
    • 普通硬件组成的大规模系统中,故障是常态
    • 文件数量不是特别多 ( vs FB Haystack)
    • 大文件,追加操作和流式读取为主
    • 追求高吞吐而不是低延迟
  • 架构
    • 组件 - master, chunkserver, client
    • 文件由固定长度的chunk组成,一般是64M
    • 没有缓存

GFS Master

  • master内存中维护所有的元数据, 和chunkserver通过心跳来通信
  • 单点故障?
  • 数据量
  • 请求压力
  • 数据如何保证安全?


GFS 数据

  • 主备份(primary)和租约机制(lease)
  • 数据流和控制流
  • 一致性如何保证?
  • atomic record append
  • 版本号与垃圾回收


Dynamo

  • 分布式KV存储
  • 无主架构
  • 一致性哈希
  • Gossip协议


Dynamo 一致性

  • Quorum一致性: R + W > N
  • 向量时钟
  • 处理冲突数据


Dynamo 副本

  • 比较副本间的数据:Merkle Tree


MapReduce

  • MapReduce之前的分布式计算
  • 使用Map操作和Reduce操作来定义计算

MapReduce 工作流程


MapReduce

  • 故障恢复
  • 自定义Partition函数
  • Combiner函数
  • 实例
    • Word Count
    • Sort
    • Page Rank

Spark

  • 使用DAG来定义计算
  • 中间数据不需要写磁盘
  • Lazy执行
  • 如何容错?


练习

  • 思考GFS提供了怎么样的一致性模型

深入学习