惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
A
About on SuperTechFans
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
GbyAI
GbyAI
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
月光博客
月光博客
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
T
Tailwind CSS Blog
Jina AI
Jina AI
有赞技术团队
有赞技术团队
博客园_首页

博客园 - 完美de幸福

给你一个团队,你能怎么管-读后感-凝聚力和执行力(1) Lync 2010 存档服务器配置 学习笔记(9) Lync 2010 监控服务器配置 学习笔记(8) 云计算 学习笔记(4) HDFS 简介及体系结构 云计算 学习笔记(2) 分布式的一些基础概念 云计算 学习笔记(1) Hadoop简介 CMMI学习系列(7)-组织过程库,预评估,正式评估。 CMMI学习系列(6)-项目试点 CMMI学习系列(5)-CMMI3过程规范制定 CMMI学习系列(4)-CMMI3认证流程各阶段介绍&项目管理 CMMI学习系列(3)-CMMI3认证流程 CMMI学习系列(2)-CMMI3简介 CMMI学习系列(1)-CMMI简介及证书介绍 Lync 2010 Lync客户端测试 学习笔记(7) Lync 2010 标准版 搭建Lync服务器 学习笔记(6) Lync 2010 标准版 Lync服务器准备 学习笔记(5) Lync 2010 标准版 CA证书服务搭建 学习笔记(4) Lync 2010 标准版 AD控制器搭建 学习笔记(3) Lync 2010 系统架构 学习笔记(2)
云计算 学习笔记(3) Google 集群系统 & Hadoop
完美de幸福 · 2012-11-21 · via 博客园 - 完美de幸福

Google 分布式系统与Hadoop

名称 Google Hadoop

分布式文件系统

Google file system(GFS)

Hadoop Distributed File System(HDFS )

分布式计算

Google MapReduce

MapReduce

分布式存储

Google BigTable

HBase

分布式协同服务

Google Chubby

ZooKeeper

数据仓库工具

 

Hive

其他

 

Avro,Hadoop Common,Pig,Chukwa,CloudBASE等

分布式文件系统术语对比

术语

GFS中的术语

HDFS中的术语

术语解释

主控服务器

Master

NameNode

整个文件系统的大脑,它提供整个文件系统的目录信息,并且管理各个数据服务器。

数据服务器

Chunk Server

DataNode

分布式文件系统中的每一个文件,都被切分成若干个数据块,每一个数据块都被存储在不同的服务器上,此服务器称之为数据服务器。

数据块

Chunk

Block

每个文件都会被切分成若干个块,每一块都有连续的一段文件内容,是存储的基恩单位,在这里统一称做数据块。

数据包

Packet

客户端写文件的时候,不是一个字节一个字节写入文件系统的,而是累计到一定数量后,往文件系统中写入一次,每发送一次的数据,都称为一个数据包。

传输块

Chunk

在每一个数据包中,都会将数据切成更小的块,每一个块配上一个奇偶校验码,这样的块,就是传输块。

备份主控服务器

SecondaryNameNode

备用的主控服务器,在身后默默的拉取着主控服务器 的日志,等待主控服务器牺牲后被扶正。

Hadoop服务器的基本架构、各服务所使用的协议、调用方向、以及协议中的基本内容

image

Hadoop 服务器简介

      分布式文件系统不是将这些数据放在一块磁盘上,由上层操作系统来管理。而是存放在一个服务器集群上,由集群中的服务器,各尽其责,通力合作,提供整个文件系统的服务。其中重要的服务器包括:主控服务器(Master/NameNode),数据服务器(ChunkServer/DataNode) ,和客户服务器。HDFS和GFS都是按照这个架构模式搭建的。其中设计的最核心内容是:文件的目录结构独立存储在一个主控服务器上,而具体文件数据,拆分成若干块,冗余的存放在不同的数据服务器上。存储目录结构的主控服务器,在GFS中称为Master,在HDFS中称为NameNode。

    每一个文件的具体数据,被切分成若干个数据块,冗余的存放在数据服务器。通常的配置,每一个数据块的大小为64M,在三个数据服务器上冗余存放,数据服务器其主要的工作模式就是定期向主控服务器汇报其状况,然后等待并处理命令,更快更安全的存放好数据。整个分布式文件系统还有一个重要角色是客户端。它不和主控服务和数据服务一样,在一个独立的进程中提供服务,它只是以一个类库(包)的模式存在,为用户提供了文件读写、目录操作等APIs。

分布式文件系统

uFault-tolerant, 容错性

uRun on commodity hardware,在通用的机器上运行

uScalable 可扩缩的

image

分布式文件系统

       数据分布

       一个文件系统中,最重要的数据,其实就是整个文件系统的目录结构和具体每个文件的数据。具体的文件数据被切分成数据块,存放在数据服务器上。每一个文件数据块,在数据服务器上都表征为出双入队的一对文件(普通的Linux文件),一个是数据文件,一个是附加信息的元文件,这对文件简称为数据块文件。数据块文件存放在数据目录下,它有一个名为current的根目录,然后里面有若干个数据块文件和从dir0-dir63的最多64个的子目录,子目录内部结构等同于current目录,依次类推。

      主控服务器的数据量不大,但逻辑更为复杂。主控服务器主要有三类数据:文件系统的目录结构数据,各个文件的分块信息,数据块的位置信息(数据块放置在哪些数据服务器上)。在GFS和HDFS的架构中,只有文件的目录结构和分块信息才会被持久化到本地磁盘上,而数据块的位置信息则是通过动态汇总过来的,仅仅存活在内存数据结构中,机器宕机数据就消失了。每一个数据服务器启动后,都会向主控服务器发送注册消息,将其上数据块的状况都告知于主控服务器。

      服务器间协议

     在Hadoop的实现中,部署了一套RPC机制,以此来实现各服务间的通信协议。在Hadoop中,每一对服务器间的通信协议,都定义成为一个接口。服务端的类实现该接口,并且建立RPC服务,监听相关的接口,在独立的线程处理RPC请求。客户端则可以实例化一个该接口的代理对象,调用该接口的相应方法,执行一次同步的通信,传入相应参数,接收相应的返回值。基于此RPC的通信模式,是一个消息拉取的流程,RPC服务器等待RPC客户端的调用,而不会先发制人主动把相关信息推送到RPC客户端去。

      数据结构

        NameNode

–存贮HDFS的元数据(metadata)

–管理文件系统的命名空间(namespace)

创建、删除、移动、重命名文件和文件夹

–接收从DataNode来的Heartbeat和Blockreport

       DataNode

–存贮数据块

–执行从Namenode来的文件操作命令

–定时向NameNode发送Heartbeat和Blockreport

分布式计算(Map/Reduce)

     uJobtraker(Master)

–接收任务(job)的提交

–提供任务的监控(monitoring)和控制(control)

–把job划分成多个tasks,交给Tasktracker执行,并管理这些tasks的执行

     uTasktracker(Worker)

–管理单个task的map任务和reduce任务的执行

  分布式存储

image

Client

1包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息。

Master

1.为Region server分配region

2.负责region server的负载均衡

3.发现失效的region server并重新分配其上的region

4.GFS上的垃圾文件回收

5.处理schema更新请求

Region Server

1.Region server维护Master分配给它的region,处理对这些region的IO请求

2.Region server负责切分在运行过程中变得过大的region

Zookeeper

1.保证任何时候,集群中只有一个master

2.存贮所有Region的寻址入口。

3.实时监控Region Server的状态,将Region server(管理区域服务器)的上线和下线信息实时通知给Master

4.存储Hbase的schema,包括有哪些table,每个table有哪些column family

image

ZooKeeper 是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。