当前课程知识点:大数据系统基础 >  6. NoSQL >  授课视频 >  数据副本及一致性

返回《大数据系统基础》慕课在线视频课程列表

数据副本及一致性在线视频

数据副本及一致性

下一节:节点本地数据存储

返回《大数据系统基础》慕课在线视频列表

数据副本及一致性课程教案、知识点、字幕

数据副本是大数据系统

普遍采用的提高系统读性能

并保证系统可靠性的重要手段

现在我们学习Cassandra

数据副本及其一致性

当数据被重复存储在

两个以上节点时

我们称数据是副本存储的

全副本

是指数据对象存储在所有节点上

全冗余数据库

就是在每一个节点上

都存储一个完整的数据库

当然一般情况下

我们并不把所有的数据

都存储在所有的节点上

我们把数据重复存储的次数

称为副本因子

在Cassandra中

实现了不同的副本策略

包括简单策略

也就是复制数据副本

到协调者节点的

N-1个后继节点上

第二种是 机架感知策略

也就是在不同机架中

选择存放副本的机器

还有数据中心感知策略

它类似于机架感知策略

只是在数据中心的层面上

作出不同副本的存储的选择

副本可以带来很多的好处

包括可用性 并行化

和减少数据的传输

在这里就不详细展开论述了

但是副本也带来了一些负担

比如增加了更新的成本

数据r的所有副本

都需要被更新

第二增加了并发控制的复杂度

并发更新不同的副本

一定会产生不一致的数据

这样 我们就需要特殊的

并发控制策略

那么这些副本是如何

存放在不同的节点上

上一节我们讲过

Cassandra通过一致性哈希

将数据集分段到不同节点上

现在我们要考虑

数据副本的情况

假如副本因子等于3

这时在数据象的Key1

就会保存在节点

A F和B三个节点上

不是一般性

Cassandra的副本策略

可以归纳为

在副本因子为N的情况下

在数据象顺时针方向的N个节点

保存着该数据项的副本

同样前面讲过

一致性哈希带来的好处

考虑到副本的存在

我们需要同时考虑

更新副本本身及其副本节点

以及当节点加入和退出时

这些副本在不同节点上的

重新的迁移

当节点离开时

节点存储的数据将不可用

它将被复制到其他的节点上

当一个新节点加入时

其他节点将不再对一些数据负责

因为当用户请求时

对应的数据和请求

不会被哈希到原有的节点上

这里我们先看一个示例

当节点X加入系统时

它被哈希到节点A和B之间

这时节点H和A和B

将它的一部分数据

传递到新节点X

同时节点B C D会删除数据段

下面再考虑当节点F

加入到系统中来

数据集的变化情况

我们看原来有五个节点

分别管理1-5个数据段

当F节点加入后

整个数据环被切分成六段

那么这六段数据

在这六个节点当中的重新分布

如图所示

下面考虑节点迁出的情况

节点B由于系统崩溃等原因

脱离了集群

这时节点C D E就会负责新的

哈希区间

同时集群内部的区间

会被重新整合

比如区间A B和区间B C

现在合并成了区间A C

同样我们用另一种方式

来考察节点E迁出的情况

原来ABCD六个节点

负担了六个数据段

当E离开后

数据段5和6合并成5 6段

那么这五段数据

会在剩下的五个节点中重新分配

如图所示

一个数据项在多个节点存储

带来了显而易见的好处

但是也带来了这些副本之间

存在不一致的问题

数据副本一致性

必须回答的问题是

用户必须写多少个副本

才能保证数据是足够的

第二它也必须回答

一个客户端要读多少个副本

才能保证读到的数据是最新的

法团协议是分布式系统中

常用的控制副本一致的协议

在法团协议当中

有三个关键的参数

即N是对数据

或者是对数据段

读写的副本的数据

NR是读操作当中

需要读取的节点的个数

NW是写操作中

需要阻塞等待的节点个数

下面看一个具有12个数据副本的

法团协议的示例

在这里我们看到

某一个数据项会本存放到

ABCD一直到L 12个数据节点上

我们读取的数据节点数NR等于3

那么我们要求的写的节点数NW

就至少等于10

这样才能保证读

对过程会至少读到一个新的

写的节点

另外如果我们读的节点数为7

那么我们写的节点数

就不能小于6

当然最极端的我们可以要求

写全部

这样我们只要读一个节点

就可以了

在Cassandra当中

提供了管理副本一致性的方法

管理副本一致性

就要在副本数 写成功数

和读成功数

这三个数字之间进行权衡

但是要满足读副本数+写副本数

要大于N这样的一个条件

Cassandra中提供的标准化的

副本一致性级别

包括读级别和写级别两大类

对于读的一致性级别

包括ONE QUORUM和ALL

他们对应的语意如PPT所示

对于写一致性级别

增加了ZERO级

它表示写操作将立即返回

但是并不保证这次写一定成功

大数据系统基础课程列表:

1. 绪论

-授课视频

--什么是大数据

--大数据典型应用

--大数据的特点

--大数据技术体系

--大数据生态系统

--大数据技术挑战

--课程内容

-1. 绪论--Quiz 1

2.云计算

-授课视频

--2.1大数据和云计算关系概述

--2.2并行化理念

--2.3规模经济理念

--2.4从仓库规模计算机到云

--2.5云计算商业模式概述

--2.6云计算带来的价值

--2.7云计算的分类

--2.8虚拟化技术概述

--2.9计算虚拟化

--2.10网络虚拟化:基础

--2.11网络虚拟化:软件定义网络

--2.12软件定义网络实现

--2.13存储虚拟化:用户接口

--2.14存储虚拟化:分布式存储实现方式

--2.15虚拟化技术总结

--2.16OPENSTACK

--2.17云计算小结

-2.云计算--Quiz 2

3.文件存储

-授课视频

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-3.文件存储--Quiz3

4. 处理框架

-授课视频

--4.1大数据的处理框架

--4.2MapReduce编程模型

--MapReduce执行过程

--4.4MapReduce数据流

--4.5MapReduce性能优化与容错

--4.6Hadoop

--4.7MapReduce总结

--4.8Pig Latin

--4.9Pig Latin语法

--4.10Pig Latin 嵌套数据类型

--4.11Pig Latin 实现与优化

--Pig Latin 实现与优化(2)

--4.13类似框架

--4.14章节总结

-4. 处理框架--Quiz4

5.内存计算

-授课视频

--5.1内存计算概述

--5.2并行计算挑战

--5.3并行计算的局限性

--5.4大数据处理并行系统

--5.5内存计算需求

--5.6MapReduce文件传递数据

--5.7内存计算的可行性

--5.8内存层次的延迟

--5.9内存计算实例-spark

--5.10SPARK-RDD

--5.11大数据并行系统

--5.12Spark编程接口

--5.13Spark编程实例——Log挖掘

--5.14Spark编程实例——WorkCount

--5.15Spark实现技术

--5.16复杂的DAG示例

--5.17RDD性能的提高

--5.18Spark应用和生态环境

--5.19Spark的局限性

-5.内存计算--Quiz5

6. NoSQL

-授课视频

--NoSQL与Cassandra

--数据模型、接口、语言

--系统架构与Gossip协议

--一致性哈希与数据分区

--数据副本及一致性

--节点本地数据存储

-6. NoSQL--Quiz6

7. 流计算

-授课视屏

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-7. 流计算--Quiz7

数据副本及一致性笔记与讨论

也许你还感兴趣的课程:

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