java如何判断活动的namenode,Hadoop NameNode判断 DataNode 节点宕机的时间

1、namenode 如何判断datanode节点是否宕机?

先决条件:

datanode每隔一段时间像namenode汇报,汇报的信息有两点

(1)自身datanode的状态信息;

(2)自身datanode所持有的所有的数据块的信息。

如果namenode连续十次没有收到datanode的汇报,那么namenode就会认为该datanode存在宕机的可能。

datanode启动以后会专门启动一个进程负责给namenode发送心跳数据包,如果datanode没有问题,仅仅只是发送信息数据包的进程挂了,namenode会发送命令像这个datanode进行确认,

查看这个发送心跳包的进程是否还能正常运行,namenode会向datanode确认两遍,每五分钟确认一次。如果两次都没有返回结果,那么namenode就会认为datanode已经宕机了。

最终namenode判断一个datanode死亡的时间计算公式:

timeout= 10 * 心跳间隔时间 + 2 *检查一次消耗的时间

心跳间隔时间

配置参数:dfs.heartbeat.interval

默认值:3s,单位s

检查一次消耗的时间

配置参数:dfs.namenode.heartbeat.recheck-interval

默认值:300000,单位ms2、数据块读写操作的一些配置项

(1)配置参数:dfs.blocksize

参数说明:客户端数据分块的大小

默认值:134217728(128M);单位:字节

(2)dfs.client-write-packet-size

参数说明:客户端写入数据时packet数据包的大小

默认值:65536(64K),单位字节

(3)dfs.bytes-per-checksum

参数说明:chunk(写入数据时最小的一个单位),数据校验的粒度

默认值:512字节

注:事实上一个chunk还包含4B的校验值,因而chunk写入packet时是516B;数据与检验值的比值为128:1,所以对于一个128M的block会有一个1M的校验文件与之对应;3、集群数据损坏以后,自动删除时长

配置项:dfs.blockreport.intervalMsec

默认值:21600000(36分钟),单位:ms4、元数据checkPount

在分布式或者伪分布集群中,每隔一段时间,会由 secondary namenode 将 namenode 上积累的所有 edits 和一个最新的 fsimage 下载到本地,并加载到内存进行 merge(这个过程称为 checkpoint)

dfs.namenode.checkpoint.check.period=60 ##检查触发条件是否满足的频率,60秒

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary

##以上两个参数做 checkpoint 操作时,secondary namenode 的本地工作目录

dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}

dfs.namenode.checkpoint.max-retries=3##最大重试次数

dfs.namenode.checkpoint.period=3600 ##两次 checkpoint 之间的时间间隔 3600秒

dfs.namenode.checkpoint.txns=1000000##两次 checkpoint 之间最大的操作记录5、jvm重用

配置参数:mapred.job.reuse.jvm.num.tasks

参数解释:一个jvm内部跑多少个task,默认是1,可以设置为多个。这个参数在2.9.2版本中未找到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值