大规模集群数据处理-分布式文件系统

课程简介

课程主要内容:

  • Hadoop
    • MapReduce
    • Spark
  • 2-3人一组搭建实验环境

成绩构成:

  • 作业占20分,实验1:10分,实验2:20分,实验3:20分,最后项目:30分。
    第二周到最后在教学实验室上课。
  • Lab1:10,倒排表
  • Lab2:20,PageRank
  • Lab3:20,聚类
  • Project:30, 自选题目,集中展示打分

课程关键词:时间、GFS、MapReduce + PageRank、KVS, BigTable <- HBase、Spark, Clusteing、Hadoop、HDFS、MapReduce、Spark、HBase

分布式文件系统

文件系统基础知识回顾

文件系统的基本功能

文件系统是用户以及应用程序与底层的磁盘系统的接口。文件系统给上层的应用提供了以目录树为组织方式的名字空间,而底层则是以磁盘块数组为接口的磁盘

FS: 文件名 -》 地址, 即实现文件名到地址的转换

目录树:支持增加,删除,遍历,读写,等功能 o/r/w/c

磁盘数据块 512B

磁盘顺序读写的速度100MB/s, 乱序读写:1MB/s

寻址与定位

应用程序访问文件-》文件系统将文件名翻译为磁盘的具体位置-》磁盘转到对应磁道,定位磁头,完成读写

文件系统的组织

目录树的组织,目录操作,文件读写操作,文件系统元数据,文件系统数据库,文件系统数据块以及文件系统缓存,文件系统的安全策略。

虚拟文件系统

文件系统元数据

文件系统的元数据是对于数据的描述,而不是数据的本身

文件系统的元数据能够反应文件的特征,并对数据的读写具有重要意义

文件系统中针对文件的典型元数据

  • 文件在目录树中的目录名以及文件名
  • 文件的大小以及在磁盘上的分布情况
  • 文件的访问时间,修改时间
  • 文件的用户数据等

文件系统总体的元数据

  • 文件系统的编码信息
  • 文件系统的格式化的信息
  • 文件系统的可用空间等相关信息

文件系统数据块,磁盘一个簇512B,文件系统一般按照一块4096B(4KB)写入和读出数据

分布式文件系统 Google文件系统

需求

  • 分布式写
  • 一次写多次读
  • 对吞吐率要求高,对延迟不敏感

基本设计

  • 数据块:64MB
  • 可靠性:副本,3个节点以上
  • 系统设计简化:Matser单节点存储文件系统的元数据
  • 没有数据缓存
  • 追加Append操作

论文

  • A file region is consistent if all clients will always see the same data, regardless of which replicas they read from.
  • 如果所有客户端,无论从哪个副本读取,读到的数据都一样,那么我们认为文 件region是“一致的”;
  • A region is defined after a file data mutation if it is consistent and clients will see what the mutation writes in its entirety.
  • 如果对文件的数据修改之后,region是一致的,并且客户端能够看到写入操作全部的内容,那么这个region是“已定义 的”。
  • 当一个数据修改操作成功执行,并且没有受到同时执行的其它写入操作的干扰,那么影响的region就是已定义的(隐含了一致性):所有的客户端读取的恰好是写入的内容。
  • 并行修改操作成功完成之后,region处于一致的、未定义的状态:所有的客户端读取到的是同样的数据,但是无法读到任何一次写入操作写入的数据。
  • 通常情况下,文件region内包含了来自多个修改操作的、混杂的数据片段。失败的修改操作导致一个region处于不一致状态(同时也是未定义 的):不同的客户在不同的时间会看到不同的数据。后面我们将描述应用如何区分已定义和未定义的region。应用程序没有必要再去细分未定义region 的不同类型。

Write操作和记录追加操作

定位机器,定位磁盘

string -》 | node -》 本地文件系统Data

  • Reliability:Master 损坏 可靠性 —》 备份(Shadow) chunkServer的备份? Assumption,独立同分布
  • Consistency: 一致性
  • Performance; Load balance, scalability(增加机器优化性能)

Performance

ChunkServer

容量负载均衡

  • Random
  • 分配给剩余空间最大的ChunkServer

Hot Data

Master

性能瓶颈

内存, 掉电

10TB -》 10MB

Cache MetaDaba - 一致性

10PB -> 64MB块 块的元数据64B, $2^{32}-1 = 4G$ 40亿 10GB 带宽,延迟 DDR4 20GB/s,

磁盘: 顺序 100MB/s 乱序:1MB/s 延迟ms

  • Dump
  • log,操作记录
  • SnapShot - log - SnapShot
  • SplitBrain Paxos, Raff,

一致性问题

操作排序

RSM

确定性操作

A1B1 A2B2 => A2B1

打赏