您的位置:首页 > Web前端 > Node.js

namenode和datanode的启动过程及安全模式相关

2018-12-05 14:38 363 查看

Namenode

(1) 加载镜像文件,还原checkpoint时间节点前的元数据(包含目录结构,文件大小,块数据的大小和id),不包含快的存储位置
(2)加载edits文件,还原checkpoint时间节点到集群停止的元数据,不包含块的存储位置。(到这里namenode还原就缺少块的存储位置)
(3)blockreprot阶段,datanode启动,向namenode汇报自己所管理块及id,namenode根据块的id还原块的存储位置
(4)blockreport结束后,集群会判断datanode的启动数量(可设置,默认为0),失去的块占比(可设置,默认为0.999f)是否满足退出安装模式,如果满足,30秒后退出安全模式。在安全模式的namenode会删除多余的块(副本数为3,结果实际存储4个。ps:这种情况发生在datanode宕机,集群将宕机的datanode管理的块进行复制,而宕机的datanode又重新启动了 还会复制地域副本数的块)

namenode启动过程-hadoop集群第一次安装完后:
hadoop集群如果是第一次的启动的话 :需要格式化 目的是 创建fsimage edits 文件, ,第一次启动加载fsimage 把内存的元数据信息加载到fsimage文件中,edits 记录用户对文件系统的操作 例如 增加 修改 删除

第二次启动: 加载fsimage 和 edits 文件 合并成一个新的fsimage文件,在创建一个edits文件记录用户对HDFS的操作

Datanode
ps:一个数据块在 datanode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

datanode的心跳机制:心跳为每三秒一次,心跳返回的结果带有namenode给该datanode的命令比如复制块数据到另外一台节点上。如果超过十分钟没有收到datanode的心跳,则认为该节点不能用。

安全模式:
怎么进入安全模式:1.namenode启动是,会有30秒的安全模式
2.当块的数量低于阀值得时候,datanode的启动数量不够都会进入安全模式;
如何离开安全模式:
1.调低阀值:在hdfs.site.xml中
*dfs.namenode.safenode.threshold-pct*该条信息中设置为0.999f

2.强制离开:hdfs dfsadmin -safemode leave
3.重新格式化集群
4.修复损坏的块文件

注意点:重新格式化namenode,使用start-dfs.sh的话不能将datanode启动起来,因为格式化后clusterid改变,而datanode还保存的原来clusterid

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐