目录
5.QJM(Quorum JournalNode Manager 共享存储系统)
1.Namenode的功能
NameNode存放文件与Block的映射关系
Namenode会记录Block与DataNode的映射关系,但是不会持久化
保存文件的元数据信息
文件的归属,权限,大小,时间
Block信息,但是block的位置信息不会持久化需要每次开启集群的时候DN上报
收集Block的信息
系统启动时
NN关机的时候是不会存储Block与DN的映射信息
DN启动的时候,会将自己节点上存储的Block信息汇报给NN
NN接受请求之后重新生成映射关系
Block-DN3
如果某个数据块的副本数小于设置数,那么NN会将这个副本拷贝到其他节点
集群运行中
NN与DN保持心跳机制,三秒发送一次
如果客户端需要读取或者上传数据的时候,NN可以知道DN的健康情况
可以让客户端读取存活的DN节点
如果DN超过三秒没有心跳,就认为DN出现异常
如果DN超过10分钟+30秒没有心跳,那么NN会将当前DN存储的数据转存到其他节点
2.Namenode的性能
Namenode为了效率,将所有的操作在内存中完成
NameNode不会和磁盘进行任何数据交换
问题:数据的持久化 | 数据保存在内存中,掉电易失
3.DataNode的功能
存储Block数据,会放在硬盘上
NameNode非常排斥小文件,一般小文件处理之前需要进行压缩
启动dn时会汇报之前的Block块是否被损坏,向nn汇报dn的Block的信息
运行dn时向nn保持心跳机制,客户可以向dn读写数据
客户端读写数据的时候,先去nn查询file与block与dn的映射关系
客户端直接与dn建立连接,然后读取数据
4.SNN(StandbyNameNode)
Standby NameNode:NN的备用节点
和主节点做同样工作,但是不会发出指令
存储数据的元数据信息,Block,nn的映射关系,内存数据和主节点内存数据一致
启动时接受dn汇报,运行时保持心跳(3m异常,10分30秒dn数据转存其他节点)
日志文件和镜像:ANN使用fsimage和edits文件可以恢复元数据
5.QJM(Quorum JournalNode Manager 共享存储系统)
6.ZKFC(故障转移控制器)
对nn主备切换总体控制,能及时检测nn的健康情况
主nn故障时,借助zk实现自动主备选举和切换
zookeeper为主备切换控制器提供主备选举支持
辅助投票
和zkfc保持心跳
7.HA环境搭建(配置,启动,端口)
配置:hadoop-env.sh,core-site.xml,hdfs-site.xml,etc/profile环境变量
启动:zkServer.sh start ,hdfs --daemon start journalnode,start-all.sh
端口:9870