黄石做网站建设的,360免费建站怎么进不去,洛阳青峰网络做网站,phpcms学校网站模板NN和2NN的内部工作原理
对于NameNode的存放位置#xff1a; 内存中#xff1a;好处#xff1a;计算快 坏处#xff1a;可靠性差#xff0c;断电后元数据会丢失 磁盘中#xff1a;好处#xff1a;可靠性搞 坏处#xff1a;计算慢 内存磁盘中#xff1a;效率低
所以设…NN和2NN的内部工作原理
对于NameNode的存放位置 内存中好处计算快 坏处可靠性差断电后元数据会丢失 磁盘中好处可靠性搞 坏处计算慢 内存磁盘中效率低
所以设置在磁盘中的备份元数据的镜像文件FsImage(只存储数据)但元数据更新时需要同时更新FsImage否则会产生数据一致性的问题且断电后元数据会丢失。
引入Edits日志文件只进行追加操作。每当元数据有更新或者添加元数据时修改内存中的元数据并追加到Edits中。一旦NameNode节点断电通过FsImage和Edits的合并元数据。
引入一个新的节点SecondaryNamenode专门用于定期合并FsImage和Edits。
综上NameNode存放于内存中FsImage和Edits存放与磁盘中SecondaryNamenode定期合并FsImage和Edits当开机时加载FsImage和Edits到NameNode。 1.第一阶段NameNode启动 1第一次启动NameNode格式化后创建Fsimage镜像文件和Edits日志文件。如果不是第一次启动直接加载编辑日志和镜像文件到内存。 2客户端对元数据进行增删改的请求。 3NameNode记录操作日志更新滚动日志。先记录日志再更改内存如果先更改内存再记录在更改内存后遇到断电则不会记录此次更改的记录导致内存丢失 4NameNode在内存中对元数据进行增删改。
2.第二阶段Secondary NameNode工作 1Secondary NameNode询问NameNode是否需要CheckPoint触发条件定时器到期Edits日志文件数据满。直接带回NameNode是否检查结果。 2Secondary NameNode请求执行CheckPoint。 3NameNode滚动正在写入Edits日志。 4将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。 5Secondary NameNode加载编辑日志和镜像文件到内存并合并。 6加载后Secondary NameNode生成新的镜像文件fsimage.chkpoint。 7Secondary NameNode拷贝fsimage.chkpoint到NameNode。 8NameNode将fsimage.chkpoint重新命名成fsimage。
DataNode工作机制 1DataNode主动向NameNode汇报自己的块信息。 2NameNode则记录下 有哪些块是正常的并向DataNode发送注册成功。 3DataNode每隔一个周期6h向NameNode汇报所有块的信息保证数据的可靠性。 4DataNode和NameNode有周期性3s的互通信息确保DataNode还是活动状态。 5若一定的时间NameNode没有收到DataNode信息则任务该节点不可用即NameNode不允许客户端向DataNode读写数据。
数据的完整性
Hadoop使用crc校验位进行数据一致性校验先对原始数据进行crc计算然后与传输过来的crc校验位比较是否一致。