分布式笔记1 | 青训营笔记

103 阅读3分钟

这是我参与「第四届青训营 -大数据场」笔记创作活动的第11篇笔记

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

分布式与集群的区别

  1. 分布式(Distributed):多台机器,每台机器上部署不同组件
  2. 集群(Cluster):多态机器,每台集群部署相同组件

负载均衡

  1. 将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行
  2. 解决了单个无法处理所有任务,多个一起处理的问题

image.png

负载均衡一般面对集群

故障转移

  1. 当活动的服务或应用以外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作
  2. 故障转移系统又称容错系统
  3. 故障转移的核心是设置备份出现故障时,主备切换
  4. 主备切换的前提是数据状态保持一致

伸缩性

  1. 伸缩性又称弹性、可拓展性
  2. 指系统可以根据需求动态的扩容、缩容

分布式文件系统HDFS

HDFS:Hadoop分布式文件系统

HDFS解决大数据如何存储问题。分布式意味着是横跨在多台计算机上的存储系统

HDFS是一种能够在普通硬件上运行的分布式文件系统,它是高度容错的,适应于具有大数据集的应用程序,它非常适于存储大型数据

HDFS使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统

HDFS上的应用主要是以流式读取数据

大部分HDFS应用对文件要求的是write-one-read-many访问模型。一个文件一旦创建、写入、关闭之后就不需要修改了。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能

移动计算的代价比移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越有效。将计算移动到数据附近,比将数据移动到应用所在显然更好

主从架构

HDFS采用master/slave架构,一般一个HDFS集群是有一个NameNode和一定数目的DataNode组成。NameNode是HDFS主节点,DataNode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服务

image.png

NameNode:

DataNode:

分块存储机制

HDFS中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定,参数位于hdfs-default.xml中:dfs.blocksize 默认大小是128M

副本机制

文件的所有block都会有副本。每个文件的block大小(dfs.blocksize)和副本系数(dfs.replication)都是可配置的。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变

namespace

HDFS支持传统的层次型文件组织结构。

NameNode负责维护文件系统的namespace名称空间,任何对文件系统名称空间或属性的修改都将被NameNode记录下来

HDFS会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件

元数据管理

在HDFS中,NameNode管理的元数据具有两种类型:

  1. 文件自身属性信息:文件名称、权限、修改时间、文件大小、复制因子、数据块大小
  2. 文件块位置映射信息:记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上

数据块存储

文件的各个block的具体存储管理由DataNode节点承担。每个block都可以在多个DataNode上存储

image.png

(未完待续)

Client写流程

image.png

Client读流程

image.png