当前课程知识点:大数据系统基础 >  6. NoSQL >  授课视频 >  系统架构与Gossip协议

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

系统架构与Gossip协议在线视频

系统架构与Gossip协议

下一节:一致性哈希与数据分区

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

系统架构与Gossip协议课程教案、知识点、字幕

下面学习Cassandra系统的

系统架构和Gassip协议

Cassandra集群采用的是

去中心化的P2P分布式架构

这个架构与Hadoop集群采用的

Master sliver架构不同

在P2P架构当中所有节点

在结构上都是对等的

这样Cassandra

任何一个节点的宕机

只会对整个集群的吞吐性能

造成影响

而不会造成

整个系统的服务中断

也就是说

它克服了Hadoop机群当中的

单点故障问题

同时 由于Cassandra

采用了P2P架构

它具有较强的机群的扩展能力

也就是说

当集群扩展时

绝大多数步骤都可以自动完成

那么不同的节点

是如何相互感知的

在Hadoop集群当中

所有的数据节点

都会定期地与主节点通讯

因此主节点掌握着集群当中的

全局信息

而Cassandra的P2P架构

在管理集群方面

就没有那么简单了

需要一些特殊的技术

那么P2P架构如何管理节点

在Cassandra系统中

两个节点又是如何交换信息的

Cassandra借鉴了Amazon的

键值系统Dynamo的体系结构

它利用Gossip协议

来发现集群中

其它节点的位置和状态

位置信息包括

路由表 Hash环等

状态信息包括

节点上边数据的版本 负载情况

以及节点的死活的信息

流言协议是1987年

第一次被斯诺公司提出的

也称为疫情算法

因为它的工作机制

也像瘟疫的传播

一个节点一旦获取了

另一个节点的信息

它就会把该信息

传给集群中的其它节点

最后集群中的所有节点

都拥有了这个节点的信息

下面我们一起来看一个例子

绿色节点A D为种子节点

用来初始化集群

并且要求存在某个节点

预知多个种子节点

Cassandra集群中

虽然没有Master的节点

但是需要有部分种子节点

用来初始化集群

并且要求存在某些节点

要预知多个种子节点

绿色节点A D为种子节点

红色节点B C E为非种子节点

白色方框内表示

每个节点的路由表

也叫lookup表

这里我们假设

节点B C预知种子节点A

节点E预知种子节点A和D

两个种子节点A和D之间互不相知

这是A与D首先通信

A和B彼此感知

它们的路由表同步为AB

然后C与A通信

C和A的路由表修改为ABC

而B节点的路由表仍为AB

接下来 节点C与B通信

或者节点B与A通信

这时A B C三个节点的路由表

达成一致

此后如果E与D进行通信

同理D与E组成了子网

注意此时A B C三个节点

和D E两个节点并未连通

这时

因为E还知道另外一个种子节点A

它与A进行通信后

每个节点的路由表如右图所示

E和A节点的路由表为五个节点

它们已经感知到了全部的节点

B和C的路由表为三个节点

D的路由表只包括两个节点

最后再通过多轮的通信

比如 B与A C与B等等

就形成了完整的全连同的

Cassandra集群结构

Gossip交换信息有三种模式

即推模式 拽模式和推+拽的模式

Cassandra系统当中的Gossip协议

采用了推+拽的模式

具体过程如下

Cassandra的某一个节点

作为发起者会周期性地

随机选择一个朋友节点

并初始划一个与它的gossip会话

gossip发起者首先向朋友节点

发送GossipDigestSynMessage

当这个朋友节点

接收到这个消息后

即返回一个AckMessage

发起者接收到朋友节点的

ACK消息后

再向朋友节点发送它的Ack2Message

这里给出了在Cassandra系统中

某一个数据对象E的K属性的值

如何同步到21版本当中的

注意这里对象的值

用小数点来表示

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

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

系统架构与Gossip协议笔记与讨论

也许你还感兴趣的课程:

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