当前课程知识点:高级大数据系统 >  NoSQL >  Master Startup >  Video

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

Video在线视频

Video

下一节:Video

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

Video课程教案、知识点、字幕

我们刚刚介绍了这个big table

它的一个架构的一个情况

那我们说它是一个和GFS mapreduce

非常类似的一个结构

它有一个中心的master server

管理底下一堆的这个tablet server

然后client会需要从

master server得到一系列的

这种元数据

然后具体的数据的这个传输

和操作会有这个tablet server

和client单独的来完成

那么这样的一个结构

实际上它有它的好处

比如说它的这个性能会比较的高

因为可能client不需要通过

一个bottleneck来进行操作的

这样一个执行

同时它可以利用到底层的

这种分布式文件系统

和底层的mapreduce

进行数据处理

那么它性能上也会有

一定的这个保证

但它的缺点

它会有这个单点的失败对吧

master server是一个整个系统

这样一个单点的失败

那么这种系统的取舍实际上

是这个工业界

在经过一定的探索之后

实际上它们决定使用了

这样的一个结构

当然更好的结构

比如说我们对master

进行一定的这种备份

进行一定的分布式

这都是今天工业界

在探讨的这样一个课题

那么下面我们来介绍的就是说

我们有了这样一个架构

整个这个big table

它是如何工作起来的

以及我们对这个big table

它的一些看法和建议是什么样子

那我们来看big table

是如何运行的

big table它首先启动的是

master server

那么和这个GFS mapreduce

是一致的

master server通过chubby

我们刚刚说chubby维护了整个

big table它的这个名字空间

以及一些这个元数据信息

那么通过chubby它获得了这个

master的一个权限

然后master server

实际上它会去在chubby里面去找

目前big table能够使用的这些

tablet的server

然后他会和这个tablet server进行通讯

然后知道这些tablet server它的一个情况

比如说是否真的在工作

这些tablet server上面

有哪一些这个数据

这个master server会从

刚刚我们说的这种3层结构里面

得到当前系统

它的这些tablet 的一些信息

包含tablet

它的这种树形的结构

以及各个tablet 它对应的

这个tablet server

这是master server它启动之后

对元数据的一个读取

一个load

它的一个情况

master server还会

做一些什么事呢

它会去做这个tablet server的这个分配

也就是说它会决定哪一些

tablet被哪一些这个

tablet server去服务

master server会去scan

就是会去扫描

整个元数据信息里面

哪一些表格没有这个指定tablet server

那这种表格我们把它叫做

这种unassigned table

那么当一个表格没有被指定给

tablet server服务的时候

master就需要去安排

它的这个服务

那么master服务这个过程

实际上就是说它会去找着这样的

一些tablet server

这些tablet server

并不是特别的繁忙

当前的这个运行状态是正常的

会从里面挑选

tablet server

来服务这个tablet

那么tablet的这种server的服务

就会保证tablet

实际上在系统中

它是持久化的

那么持久化到了

分布式文件系统里面

同时它也具有了这种

失败的这种可控

比如说他有3个物理的备份

在3个不同的这个server上

对于这个tablet server

另外一个方面

就是说当我们要对数据

进行一个修改

不只是读的时候

实际上这个过程

我们刚刚也提到过

我们会将这个过程序列化log化

也就是说我们会把这些记录

首先记下来

比如说对某一个tablet

需要做什么样的修改

需要做什么样的调整

那么这个记录会被cache到

一个叫做memtable的

这个结构里面

那么这个memtable里面就会

记录一系列这样的这种commits

一系列这样的用户

对修改的一个提交

形成一个日志

那这个日志会被big table

在后续的时间里面调动起来

让这个修改真正的发生

当发生的时候可能会涉及到

table的真实的这个修改

或者说tablet的一个拆分

那这是系统周期性

去完成的这样一个事情

那么这张图

和我们刚刚的系统架构

实际上是能够对应的

那边有这个big table

它的这些使用的进程

或者是client

那这边是master server

那我们来看它这些模块

分别负责的一些任务是什么

那我们来看big table

这个master

实际上它主要是对元数据

进行一个读取保存

以及对元数据进行一个

这种真实的一个操作

那同时他还要去做一些策略的管理

比如说怎么样维护各个tablet server的load balance

而tablet server它最本质的任务

就是去执行具体的这种查询

可能会做一些代码的这种部署

然后它会去服务数据

当然它是通过GFS模块

那直接部署中

它们其实上是一套

一套这个统一的一个集群

那client是一个

比较聪明的client

它需要和master去协调

对元数据进行一个查询和调整

那么它需要对被big table

进行数据的读和数据的写

那么它还需要和这个chubby

进行一个交互

然后拿到整个系统中一些

关键的这种名字空间的一些数据

那么依然是一个smart client

我们认为

那么有了这样一个

工作的流程之后

master server启动起来

然后找着tablet server启动起来

然后client会去和各个模块

进行沟通

达到数据的这种读和写

那我们来看在big table里面

他们给到的这些例子

这些例程是一个什么样的情况

那么这是对表格进行打开

然后进行一个删除操作的

一个例子

那我们来看它的一个逻辑

是一个什么样的

首先我们把一个表格打开

那么表格的名字空间

这时候会和master,会和chubby

进行一定的这个沟通

然后我们通过这个row

把一个row给提取出来

那么row可以指定到

某一个具体的这个column上面

然后指定到这个column上面之后

我们实际上就对数据

进行了一个定位

在row column的这样一个层面上

进行的一个定位

然后我们可以执行一个操作

叫做得delete

那么这个操作可以实施到

整个系统里面去

那么有了这样一个操作之后

实际上big table已经帮我们

把这样的一个操作

记录到了memtable里面

那么在随后的

这个系统的运行过程中

会帮我们把这个操作

实施到big table里面

那么我们也可以看到

我们在这个big table里面

进行一个数据的这种查询的

一个操作

它的整个过程也很类似

那么我们可以指定

我们要fetch的这个column

它的一个family是什么

那么我们可以让它返回

所有的这个version

也就是说所有time stamp

对应的这些数据

那么我们使用了一个for循环

来对我们需要的这个

一些这个关键词

进行一个检索

那么检索之后

把它打印出来

那我们来看这个检索的过程

我们能够对哪一些数据

进行一个提取

我们可以提取到

rwo的这个名字

column的名字

以及它的这个timestamp里面

具体的数据

也就是row column timestamp

对应的这个数据

所以大家可以发现big table

实际上提供了非常高层

也非常类似sql的

这样一些这种操作

当然它没有特别复杂的这种查询

但是基于big table的这个思想

今天的这个nosql系统

已经可以提供非常复杂的

以及非常类似于关系数据库的

这种数据的查询

那么基于这样的一些原始的接口

那么我们来看

从Google从一个大数据的这种企业

我们来看它的这样一个发展

从这个GFS mapreduce到big table

它的一些这种宏观的这种角度

会有一些什么样的启发

首先这个Google

它的这个老的三驾马车

这个big table

是最后产生出来的

那么最开始是这个

分布式文件系统可以用来存数据

可以不用再担心数据变得有多少

那么只要我有服务器

我就可以扩展

整个系统的这样一个容量

到后面我们可以去运行

一些这种分布式文件处理的

这样一个程序mapreduce

我们可以去执行一系列操作

然后利用到很多的这个服务器

那么我们又想把这种执行

进一步变的简单化

从操作层面简单化

而从效果的层面

我们需要它尽可能执行

比较复杂的语句

我们产生了big table

那么把这3个东西给连到了一块

那big table实际上

整合了GFS和mapreduce的

这个能力

他通过GFS存储数据

通过mapreduce去执行操作

把他们俩做了一个这个协同

就用到一种数据库的

这样一个这个执行的一个模式

那么他共通的一些特性

我们刚刚已经多多少少提到

首先他们都是分布式的这个系统

能够在大量的服务器上

对数据进行存储存取和操作

那么它们都基于

这样一个简单的结构

有中心服务器和若干的

这种执行的这样一个服务器

数据承载的服务器

那么他们都依赖这个

比较聪明的一个客户端

客户端需要做很多的事情

需要去维护很多的状态

那么对业务的这种要求

是比较高的

就是说这几套系统

实际上他们的设计

都是和业务关联起来

最终他们要求业务在用

他们的这些系统的时候

也能够变得比较聪明

能够执行这些具体的

这种流程的一个控制

那么这是我们对3个系统

他们的一个关联他们的关系

进行一个分析

他们的这个关系

GFS这个mapreduce

支撑了big table

他们共享了相同的这个架构

他们的这种不太一样的地方

GFS承载数据

mapreduce执行操作

big table给上层提供

使用数据简单的这样一个接口

高级大数据系统课程列表:

Introduction to Big Data Systems

-What is big data and what is big data system?

--Video

-Problems in big data systems?

--Video

-Overview of the course

--Video

-Principles of big data system design

--Video

Basics of Linux Data Processing

-Manipulating Data on Linux

--Video

--Video

--Video

-Basics of Linux Data Processing--Manipulating Data

-Running Commands on a Single Machine

--Video

-Running Commands on a Single Machine--作业

-Using a Linux Cluster

--Video

-Using a Linux Cluster--作业

Distributed File System

-Storage for Big Data Computing: Distributed file system

--Video

-Storage for Big Data Computing: Distributed file system--作业

-File system and GFS

--Video

-File system and GFS--作业

-Understanding HDFS using Legos

--Video

-Understanding HDFS using Legos--作业

-File System Implementation and DFS

--Video

--Video

-File System Implementation and DFS--作业

MapReduce

-What is MapReduce and why

--Video

-What is MapReduce and why

-Learn MapReduce by playing with cards

--Video

-Processing pattern

--Video

-Processing pattern--作业

-Hadoop

--Video

-Hadoop--作业

-Algorithms in MapReduce

--Video

-Algorithms in MapReduce--作业

-Tutorial

--Video

In-memory Processing

-Background

--Video

-Background--作业

-Spark

--Video

-Spark--作业

-Use Spark for data mining

--Video

-Use Spark for data mining--作业

-Spark data processing

--Video

-Spark data processing--作业

-Experiment in Spark

--Video

-Experiment in Spark--作业

Streaming Data Processing

-Introduction to streaming data processing

--Video

-Introduction to streaming data processing--作业

-Storm

--Video

--Video

--Video

-Storm--作业

-Spark streaming

--Video

--Video

-Spark streaming--作业

NoSQL

-NoSQL introduction

--Video

-NoSQL introduction--作业

-Common Advantages

--Video

-Common Advantages--作业

-Bigtable

--Video

-Bigtable--作业

-Master Startup

--Video

-Master Startup--作业

-HBase

--Video

-HBase--作业

Graph Processing

-What is GraphDB and Graph data processing

--Video

-What is GraphDB and Graph data processing--作业

-Graph systems

--Video

-Graph systems

-Example of a GraphDB

--Video

-Example of a GraphDB--作业

Machine Learning System

-Mahout

--Video

-Mahout--作业

-Case Study: Recommendation

--Video

-Case Study: Recommendatio作业

-Recommendation in Mahout

--Video

-Recommendation in Mahout--作业

Video笔记与讨论

也许你还感兴趣的课程:

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