单机模式
直接解压使用,什么都不配置,并且在一个节点上
没有分布式文件系统的,所用的所有文件都来自于本地
一般在测试时使用
伪分布式
可以看做是完全分布式但是跑在一个节点上,所有的进程全部配置到同一个节点
有分布式文件系统的,只不过这个文件系统只有一个节点
个人学习、测试使用
完全分布式
各个进程运行在相应的节点上
hdfs为例:
在宏观上看就是一个大节点
后台采用的硬件配置是三台机器的硬件配置之和,但是对于用户来说完全感觉不到
在完全分布式中有主节点,有从节点。
主节点namenode只有一个,从节点有多个,真实生产中namenode会单独做一个节点
如果集群中namenode宕机,整个集群不可以使用:
namenode:
1)、主要作用存储元数据(管理数据的数据,存储的就是datanode存储数据的描述)
数据存储在datanode的哪一个节点,数据是谁上传的等等
2)、处理读写请求 上传 下载
datanode:负责集群中直接数据存储的
如果集群中namenode宕机,整个集群不可以使用,这个也是完全分布式的一大缺点,存在单点故障问题
一般在学习或公司中测试用,或生产环境节点个数比较少时
节点数目越多namenode宕机的可能性越大
助理secondarynamenode:只是一个助理 只是分担namenode的压力,但是不能代替
架构:一主多从
高可用
最广泛的搭建方式
高可用:集群可以持续对外提供服务,做到7*24小时不间断
依赖于zookeeper
集群架构:双主多从
会有两个namenode,但是在同一个时间只有一个是活跃的namenode,活跃的namenode称为active,另外一个处于热备份状态,一般称这个主节点叫做standby。两个主节点存储的元数据是一模一样的。
当active namenode宕机的时候,standby namenode可以立马切换为active namenode对外提供服务,就会做到集群持续对外提供服务的功能,如果过一段时间刚才宕机的namenode又活过来了,这个namenode只能是standby的。
缺陷:在同一个时间中集群只有一个active namenode,也就是说集群的主节点的能力只有一个,如果集群中节点个数过多(1000节点)的时候,会造成namenode崩溃
namenode存储的是元数据,元数据过多的时候会造成namenode崩溃(两个都崩溃)没有真正的分担namenode的压力
实际生产中常用
联邦机制
同一个集群中可以有多个主节点,这些主节点的地位是一样的。
同一个时间可以有多个活跃的namenode
active namenode共同使用集群中所有的datanode,每个namenode只负责集群中的datanode上的一部分数据
联邦 + 高可用
超大集群使用