hadoop的三大机制介绍

背景

最近在学习大数据hadoop篇, 为了提高学习效率、巩固学习成果,特此记录一下。

心跳机制

心跳机制:datanode每隔一个固定时间会与namenode进行一次通信,以证明自己是alive同时让namenode知道集群中有多少datanode属于存活状态以及各副本与数据块的分布情况

datanode每隔一个固定时间要发送一个心跳数据包给namenode,如果隔了一段时间namenode没有收到datanode的心跳数据包,那么namenode必须按照一个标准来判断datanode是否真正down了
判断标准:10心跳时间(3秒钟)+2检测心跳机制超时时间(5分钟)=630
可以通过kill 掉一个datanode来观察
在这里插入图片描述

心跳数据包的内容
1、各datanode自身的状态
2、该datanode节点上保存的所有数据块信息
hdfs启动过程
1、先启namenode进程
2、加载namenode文件夹中的磁盘元数据信息(fsimage+edits_inprogress)
3、在namenode启动完成后,会在namenode上启动一个服务,等待所有的datanode上线后向namenode汇报他们的状态和数据块情况 。
4、datanode上线后,就通过心跳机制把自身所持有的所有块信息全部汇报给namenode
5、只有当namenode等所有的datanode上线并把所有块信息汇报完成之后,最后namenode才能得知整个集群所有文件对应的数据块及副本情况
6、namenode对外提供服务。

安全模式

在HDFS集群部分datanode出现宕机之后或启动在集群过程中有一些datanode因故障无法正常启动,这里hdfs会在后台启动一些服务,进行自我恢复,这时集群会进入一个种安全模式。
安全模式相关的命令
[root@hadoop0 current]# hdfs dfsadmin --help
-safemode <enter | leave | get | wait>]
补充:当丢失的数据块比例超过0.1%的时候会进行安全模式(怎么得知的)

副本存放策略

定义:决定一个数据块的多个副本(默认是3)到底选取哪些服务器节点进行存储

存放原则
1、任何一个节点上不可能存放两个一样的副本块
2、一个数据块要保存三个完整的副本块,至少需要3个节点

存放策略
1、第一个副本块选取与客户端相同的节点
2、第二个副本块选择跟第一个副本块所在存储节点相邻机架的任意一个节点
3、第三个副本块选择跟第二个副本块所在机架的不同节点
在这里插入图片描述

实现存放情况
选择不忙的节点

思考

1、检测心跳超时为5分钟,在哪里可以调整呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值