目录
分布式存储介绍
在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件。
为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。
集群中不同的节点承担不同的职责。
负责命名空间职责的节点称为主节点(master node)
负责存储真实数据职责的节点称为从节点(slave node)。
主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。
用户操作时,应该先和主节点打交道,查询数据在哪些从节点上存储,然后再到从节点读取。
在主节点上,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。(这时就需要越来越多的内存空间,进行优化的话,可以对其进行不定时合并)
在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)。
hdfs不适合存储小文件
数据存放在集群中,可能因为网络原因或者节点硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台节点中,这样数据就安全了,数据丢失或者访问失败的概率就小了。
分布式存储流程
1、首先是client客户端,想要往hdfs中存储数据,先询问namenode,namenode来对数据做一个识别(看一看数据够不够128MB溢出条件,来判断有多少个block块)
2、namenode判断好之后,会去下面的datanode(有许多)来查哪一个datanode内容占的少,就把数据存到那个datanode中(namenode作为管理节点,知道数据存到了哪一个datanode中,有ID号)
数据备份
在上面,将数据存储到了datanode中之后,为了防止datanode挂了之后数据丢失,会对数据做一个备份
hdfs默认副本数是3:
数据在node1,备份在node1
数据在node1,备份在node2
数据在node1,备份在不相关的机器上面(跨机架备份)
比如数据在机架1上,可以备份一份在机架2上
感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。