当前课程知识点:大数据平台核心技术 >  第六讲 全局数据管理与调度 >  前序知识 >  前序知识(主讲人:罗李)

返回《大数据平台核心技术》慕课在线视频课程列表

前序知识(主讲人:罗李)在线视频

前序知识(主讲人:罗李)

下一节:分布式节点距离计算法则(主讲人:罗李)

返回《大数据平台核心技术》慕课在线视频列表

前序知识(主讲人:罗李)课程教案、知识点、字幕

了解了全局数据的背景

和要解决的问题以后

我们来看怎么样来解决

我们遇到的问题

在跟大家

分享我们的解决方案实例之前

考虑到学习这门课程的同学

并不一定都具备

分布式系统的基础知识

所以这里先给大家介绍一些

学习这门课程

需要了解的一些

分布式系统的前序知识

以方便大家更好地理解

这门课程分享的内容

全局数据管理

其实要解决的

是一个存储的问题

而目前所有大数据系统的底层

解决存储问题的

无一例外都是

使用分布式文件系统计数

所以这里先给大家介绍

分布式文件系统中

一些必要的知识点

其中跟全局数据分布

和调度相关的几个知识点

包括传统分布式系统的系统架构

分布式系统中的容错机制

分布式节点距离计算法则

以及分布式文件系统中的

数据分布策略

我们首先来看

一个典型的分布式文件系统的

系统架构

这里插一句

由于分布式文

件系统的英文

是Distributed File System

简称DFS

接下来的课程里

为了表述方便

我们讲分布式文件系统

简称为DFS

从这张图中大家可以看到

一个典型的DFS

通常分为三个大的组建

最左边是Client

也就是客户端

它是用来提供

用户访问DFS的组建

通过Client

用户可以在DFS中创建目录

即我们通常熟悉的

Make Dnr(音)

创建文件 删除文件

移动文件和目录

对文件进行数据的写入

和读取等操作

有了DFS的Client

用户就可以像使用一块

普通的磁盘一样

来使用DFS

中间是DFS的Master组建

通常一个DFS中

肯定会有一个Master节点

由于DFS虽然是分布式的

但它仍然是一个文件系统

而一个文件系统

其中就必然会有很多的目录

子目录 文件等等

且通常都是按照树型的结构

一层一层地向子目录

和最终的叶子节点

也就是文件延伸

所以DFS的Master中

缓存了DFS的整个目录数

也就是我们通常所说的

文件系统的Name space(音)

因此有了Master节点

我们就可以知道

某个文件是放置在哪个目录下

这个目录

又是哪层目录的子目录

这个文件的大小是多少

名字叫什么

什么时候创建的等等这些信息

我们把这些信息

叫做Mate data

如图中中间方框所示

log1.txt这个文件

就是在跟淘宝man这个目录下

另外由于DFS中

文件的存储

并不像普通的文件一样

整块地存储

而是进行分块存储

这个分块的技术

在本节接下来的内容中

会有详细地介绍

所以Master节点

还保存了所有文件的分块信息

以及这些分块

都是存在哪些slave节点的

位置信息

如图这里的log1.txt这个文件

有三个分块数据

分别叫做block1 block2 block3

并且这几个block

实际的数据块

是分别存储在slave1

slave2 和slave4

这三个slave节点上

图中的右边

就是DFS中的slave节点

通常一个DFS中

至少会有一台到多台的

slave节点

这个多台的数字并不固定

可以是两台

也可以是成千上万台

根据DFS的规模

以及其数据量而定

slave节点

就是DFS中文件的数据存储的

最终地点

刚才我们说过

DFS中

文件是按照分块来存储的

所以实际上

所有slave节点上保存的

都是一个一个

属于某些文件的分块

这些分块

跟其他机器上的某些分块

按照一定的顺序组合起来

就能拼凑成一个

完整的数据文件

另外在DFS中

数据块的存储副本

是可以进行控制的

比如图中的log2.txt这个文件

它只有一个block

叫做block4

但是这个block被分别存储在

slave1 slave3 slave4

这三台slave机器上

那么这个log2.txt的文件

其副本数就是三

也就是说DFS中

有这个文件

所有block的三个副本

这就是DFS中

数据冗余策略

其目的是为了进行容错

说到DFS中的容错

我们来详细看一下

在DFS中

系统是怎么自动地对数据

进行容错和维护数据的完整性的

由于DFS通常

都是在多机的环境下

而机器越多

某一时间有机器

发生故障的概率就越高

当集群规模

达到一定的程度的时候

比如几前上万台

磁盘或机器每天发生故障

甚至宕机几乎就成了常态

即使在这种情况下

DFS通常也是能够

保证任何一个文件的完整性的

那么这是怎么做到的呢

这里简单介绍一种

DFS中最常见的容错机制

也就是数据冗余策略

在刚才的介绍中

我们已经介绍了

数据冗余策略

是怎么一回事

其实就是将一份数据

分别在不同的机器上

进行多份的冗余存储

这样 当一份数据丢失的时候

由于还有其他两份数据的存在

并不会造成

这份数据的根本丢失

而一旦DFS发现某个文件的

某个block

在整个集群中的副本数

小于其期望的数字的时候

比如刚才的例子中三

那么DFS就会自动地

将剩余的副本

重新拷贝到其他的slave节点上

直到其冗余数

达到期望的副本数

我们来看右边的图例

如刚才所述

log1.txt这个文件

被切成三个block

每个block都只有一个副本

分别存储在三台slave机器上

此时当slave2

这台机器宕机的时候

我们就会发现

集群中所有其他机器

都已经没有block2

这个数据块的数据了

此时如果用户

来读取log1这个文件

就会发现读完block1以后

依法再获取block2的数据

相当于log1.txt中

出现了一个数据断层

这个文件的数据完整性

就遭到了破坏

除非按图中所示

slave2这台机器恢复

并且数据没有丢失

此时用户在读取数据的时候

就会从slave2上

找到block2这个数据块

数据恢复完整

在很多情况下

机器宕机很也可能

无法像这里所说的

slave2这样恢复

比如这台机器烧坏了

或者硬件出现了问题

无法启动等等

在这种情况下

如log1.txt这样

block副本只有1

并且block在slave2

这台机器上的文件

就可能用户无法恢复

集群出现丢失数据的情况

数据冗余策略

能够很大程度缓解这个问题

大家看图中的

log2.txt这个文件

由于它的副本数是3

所以假设当slave3

这台机器宕机

此时block4

这个数据块的副本数变成了2

但是并不影响

这个数据的完整

因为slave1和slave4上

分别都含有

这份数据的block副本

此时DFS发现

block4只有两个副本了

小于其期望的三个副本

于是DFS会从其他

拥有这个block的机器上

将这份数据进行一次拷贝

拷贝到另外的一台机器上

这样 block4这个数据块的

冗余度重新达到三

数据的完整性没有遭到破坏

同时数据的可靠性

也跟宕机前是一样的

DFS中 数据冗余策略

是一种最常用

最简单高效的容错机制

但并不是唯一的方式

由于我们这节课

并不是主讲分布式文件系统

所以对其他更多的机制

就不再做详细介绍

大家如果有兴趣

可以参考本系列课程中

我同事给大家分享

分布式文件系统的课程内容

大数据平台核心技术课程列表:

第一讲 大数据和ODPS

-主讲人:武永卫

--大数据处理平台概述(主讲人:武永卫)

-主讲人:程永

--大数据平台ODPS(主讲人:程永)

-QUIZ--作业

第二讲 分布式存储

-大纲

--大纲(主讲人:姚文辉)

-初步认识大数据对分布式存储系统的需求

--初步认识大数据对分布式存储系统的需求

-理解大数据对分布式存储系统的需求

--理解大数据对分布式存储系统的需求(主讲人:姚文辉)

-具体说明大数据对分布式存储系统的需求

--具体说明大数据对分布式存储系统的需求(主讲人:姚文辉)

-大规模分布式存储的挑战

--大规模分布式存储的挑战(主讲人:姚文辉)

-小概率事件-Raid卡故障

--小概率事件-Raid卡故障(主讲人:姚文辉)

-分布式存储系统举例

--分布式存储系统举例(主讲人:姚文辉)

-分布式存储系统重要功能设计要点剖析

--分布式存储系统重要功能设计要点剖析(主讲人:姚文辉)

-链式写正常流程

--链式写正常流程(主讲人:姚文辉)

-写流程的另一种常见方式:主从模式

--写流程的另一种常见方式:主从模式(主讲人:姚文辉)

-链式写异常流程

--链式写异常流程(主讲人:姚文辉)

-写异常处理的另一种方法-Seal and New

--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)

-读正常流程

--读正常流程(主讲人:姚文辉)

-读流程优化-BackupRead

--读流程优化-BackupRead(主讲人:姚文辉)

-IO QoS

--IO QoS(主讲人:姚文辉)

-数据正确性:checksum

--数据正确性:checksum(主讲人:姚文辉)

-数据可靠性-Replication

--数据可靠性-Replication(主讲人:姚文辉)

-数据均衡-Rebalance

--数据均衡-Rebalance(主讲人:姚文辉)

-垃圾回收-Garbage collection

--垃圾回收-Garbage collection(主讲人:姚文辉)

-Erasure coding

--Erasure coding(主讲人:姚文辉)

-Erasure coding(3,2)写入和读取过程

--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)

-元数据管理的高可用性和可扩展性

--元数据管理的高可用性和可扩展性(主讲人:姚文辉)

-元数据管理的高可用性

--元数据管理的高可用性(主讲人:姚文辉)

-Paxos概要

--Paxos概要(主讲人:姚文辉)

-Raft

--Raft(主讲人:姚文辉)

-元数据管理的可扩展性

--元数据管理的可扩展性(主讲人:姚文辉)

-不同存储介质的特性

--不同存储介质的特性(主讲人:姚文辉)

-盘古混合存储

--盘古混合存储(主讲人:姚文辉)

-QUIZ--作业

第三讲 资源管理与任务调度

-阿里云飞天分布式调度

--阿里云飞天分布式调度(主讲人:陶阳宇)

-任务调度

--任务调度(主讲人:陶阳宇)

-资源调度

--资源调度(主讲人:陶阳宇)

-容错机制

--容错机制(主讲人:陶阳宇)

-规模挑战

--规模挑战 (主讲人:陶阳宇)

-安全域性能隔离

--安全域性能隔离(主讲人:陶阳宇)

-分布式调度的发展方向

--分布式调度的发展方向(主讲人:陶阳宇)

-QUIZ--作业

第四讲 分布式编程模型的设计与演化

-数据格式和抽象

--数据格式和抽象(主讲人:吴威)

-分布式编程模型

--分布式编程模型(主讲人:吴威)

-MapReuduce编程模型

--MapReuduce编程模型(主讲人:吴威)

-关系型数据编程模型

--关系型数据编程模型(主讲人:吴威)

-分布式图计算模型

--分布式图计算模型(主讲人:吴威)

-分布式编程未来展望

--分布式编程未来展望(主讲人:吴威)

-QUIZ--作业

实践1:通过两阶段提交协议完成数据上传

-分布式事务

--分布式事务 (主讲人:冯骁)

-分布式一致性算法

--分布式一致性算法(主讲人:冯骁)

-两阶段提交与三阶段提交

--两阶段提交与三阶段提交(主讲人:冯骁)

-实践--介绍

--实践--介绍(主讲人:冯骁)

第五讲 离线分布式关系型计算

-关系型计算基本原理_1

--离线分布式关系型计算_1(主讲人:王鹏飞)

-关系型计算基本原理_2

--关系型计算基本原理_2(主讲人:王鹏飞)

-分布式环境中的连接计算和聚合计算

--分布式环境中的连接计算和聚合计算(主讲人:王鹏飞)

-其他计算和物理优化

--其他计算和物理优化(主讲人:王鹏飞)

-QUIZ--作业

第六讲 全局数据管理与调度

-提纲

--提纲(主讲人:罗李)

-课程背景介绍

--课程背景介绍(主讲人:罗李)

-前序知识

--前序知识(主讲人:罗李)

-分布式节点距离计算法则

--分布式节点距离计算法则(主讲人:罗李)

-数据分布策略

--数据分布策略(主讲人:罗李)

-分布式计算调度

--分布式计算调度(主讲人:罗李)

-数据就近原则计算如何容错

--数据就近原则计算如何容错(主讲人:罗李)

-ODPS跨集群数据依赖

--ODPS跨集群数据依赖(主讲人:罗李)

-QUIZ--作业

实践2:编写MR完成Group By+Join操作

-主讲人:谢德军

--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)

第七讲 流式计算的系统设计与实现

-增量计算和流式计算

--流式计算的系统设计与实现(主讲人:强琦)

-与批量计算的区别

--与批量计算的区别(主讲人:强琦)

-业界典型系统技术概要分析

--业界典型系统技术概要分析(主讲人:强琦)

-核心技术

--核心技术(主讲人:强琦)

-消息机制

--消息机制(主讲人:强琦)

-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制

--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)

-StreamSQL

--StreamSQL(主讲人:强琦)

-QUIZ--作业

第八讲 内存计算

-软硬件趋势、分布式计算简史与内存计算

--软硬件趋势、分布式计算简史与内存计算(主讲人:强琦)

-分布式计算

--分布式计算(主讲人:强琦)

-内存计算

--内存计算(主讲人:强琦)

-统一的计算框架

--统一的计算框架(主讲人:强琦)

-业界经典系统技术分析-spark&flink

--业界经典系统技术分析-spark&flink(主讲人:强琦)

-QUIZ--作业

第九讲 大规模数据的分布式机器学习平台

-主讲人:褚葳

--大规模数据的分布式机器学习平台(主讲人:褚葳)

-QUIZ--作业

实践3:实现MapReduce编程运行时库

-分布式环境下的新问题

--分布式环境下的新问题(主讲人:徐冬)

-工程实现范例

--工程实现范例(主讲人:徐冬)

-课程设计相关问题

--课程设计相关问题(主讲人:徐冬)

前序知识(主讲人:罗李)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。