• 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,单位ms
    
    2、数据块读写操作的一些配置项
    (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分钟),单位:ms
    
    4、元数据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版本中未找到。
  • 相关阅读:
    Ubuntu 开机启动是出现 grub rescue 解决办法
    OpenvSwitch Port Mirror in OpenStack Neutron
    Protobuf 在Ubuntu 14上的编译与使用
    Linux screen 常用命令
    OpenStack/devstack with Neutron on Ubuntu 14 (1)
    osprofiler在openstack Cinder里的使用
    基于SSH协议的端口转发
    HA 技术简介
    Socket Receive数据一次性接收不全的问题
    【转】本文对C#虚函数virtual进行详解。
  • 原文地址:https://www.cnblogs.com/yjt1993/p/11165279.html
Copyright © 2020-2023  润新知