DataNode

一、DataNode工作机制

在这里插入图片描述

  1. 一个数据在DataNode上以文件的形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据(包括数据块的长度,块的校验和,以及时间戳)。
  2. DataNode启动后像NameNode注册,通过后周期性(1小时)的向NameNode上报所有块信息
  3. NameNode与DataNode之间使用心跳进行检测节点是否可用,心跳没每3秒一次,心跳返回结果带有NameNode给该DataNode的命令,如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
  4. 集群中可以安全的加入和退出一些机器

二、数据完整性校验

DataNode节点保证数据完整性的方法:

  1. 当DataNode读取Block时,它会计算CheckSum
  2. 如果计算后的CheckSum与Block创建时不一致,说明Block已经损坏
  3. Client读取其他DataNode上的Block
  4. DataNode在其文件创建后周期验证CheckSum

三、DataNode掉线时限参数设置

  1. DataNode进程死亡或者网络故障战场DataNode无法与NameNode无法通信

  2. NameNode不会立即吧该节点判定为死亡,要经过一段时间,这段时间成为超时时长

  3. HDFS的默认超时时长为10分钟+30秒

    TimeOut = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval

    默认配置:

    <property>
        <name>dfs.namenode.heartbeat.recheck-interval</name>
        <value>300000</value>
    </property>
    <property>
        <name>dfs.heartbeat.interval</name>
        <value>3</value>
    </property>
    

    hdfs-site.xml配置文件中的heartbeat.recheck.interval的单位为毫秒,dfs.heartbeat.interval的单位为秒。

  4. 可以通过修改上述两个配置修改超时时长。

四、添加服役新数据节点

  1. 安装配置hadoop

  2. 将新的节点ip添加到/etc/hosts(hadoop105)

    192.168.1.102 hadoop102
    192.168.1.103 hadoop103
    192.168.1.104 hadoop104
    192.168.1.105 hadoop105
    
  3. slaves添加新节点

    hadoop102
    hadoop103
    hadoop104
    hadoop105
    
  4. 配置ssh免密

  5. hostsslaves分发到新节点

  6. 单独启动新节点

五、退役旧数据节点

5.1、添加白名单

添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。
步骤:

  1. 在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts文件
    hadoop102
    hadoop103
    hadoop104
    

    上面四中添加了Hadoop05,现在要把它添加到白名单之外

  2. 在NameNode的hdfs-site.xml配置文件中增加dfs.hosts属性
    <property>
    <name>dfs.hosts</name>
    <value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>
    </property>
    
  3. 分发配置文件hdfs-site.xml
    xsync hdfs-site.xml
    
  4. 刷新NameNode
    hdfs dfsadmin -refreshNodes
    
  5. 更新ResourceManager节点
    yarn rmadmin -refreshNodes
    
  6. 在web就查看不到Hadoop105了
    在这里插入图片描述
    这种方式,是的不在白名单中的节点被排除在外了,如果该节点有数据,会造成数据不均衡
    ,使用start-balancer.sh使得集群再平衡
    [hadoop100@hadoop102 hadoop-2.7.2]$ start-balancer.sh 
    starting balancer, logging to /opt/module/hadoop-2.7.2/logs/hadoop-hadoop100-balancer-hadoop102.out
    Time Stamp               Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved
    
5.2、添加黑名单

在黑名单上面的主机会被强制退出

  1. 在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts.exclude文件
    hadoop105
    
  2. 在NameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude属性
    <property>
    <name>dfs.hosts.exclude</name>
          <value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude</value>
    </property>
    
  3. 刷新NameNode、刷新ResourceManager
    hdfs dfsadmin -refreshNodes
    yarn rmadmin -refreshNodes
    
  4. 检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点
    在这里插入图片描述
  5. 等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役
    在这里插入图片描述
  6. 停止节点
  7. 如果数据不均衡,在使用start-balancer.sh使得数据均衡

注意:不允许白名单和黑名单中同时出现同一个主机名称

六、DataNode多目标配置

  1. DataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本
  2. hdfs-site.xml中配置:
    <property>
            <name>dfs.datanode.data.dir</name>
    <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
    </property>
    

NameNode的多目录配置,多个目录的内容是一样的。而DataNode的多目录配置,各个目录的文件内容是不一样的,即DataNode的多目录是分开存储的。

### 回答1: 数据节点信息指的是在分布式系统中存储数据的节点的相关信息,包括节点的IP地址、端口号、存储容量、数据备份策略等。在Hadoop分布式系统中,数据节点是负责存储和管理数据的重要组成部分,通过数据节点信息可以了解到系统中数据的存储情况和分布情况,从而进行数据管理和优化。 ### 回答2: DataNode信息指的是Hadoop分布式文件系统(HDFS)中数据节点的相关信息。在HDFS中,数据节点负责存储和管理数据块。每个数据节点都可以存储多个数据块,并且它们相互之间可以通过网络进行通信,以保证数据的传输和备份。 DataNode信息通常包括以下几个方面: 1. 硬件信息:包括节点的CPU、内存、磁盘等硬件配置信息,这些信息对于评估节点的性能和能力非常重要。 2. 数据块信息:记录节点上存储的所有数据块和其所属的文件信息,以及数据块的大小和副本数量等。这些信息对于HDFS文件系统的管理和维护非常重要。 3. 网络信息:包括节点的IP地址和端口等网络信息,这些信息用于实现数据节点之间的通信和数据复制等。 4. 日志信息:记录数据节点的运行状态、错误信息以及调试信息等。这些信息对于Hadoop管理员诊断和解决问题非常有帮助。 DataNode信息对于Hadoop分布式文件系统的管理和运行非常重要。通过获取DataNode信息,可以监测和分析系统的性能和瓶颈,提高数据处理的效率和可靠性。在搭建和维护Hadoop集群时,我们需要学习和了解DataNode信息的相关知识,以便更好地理解和掌握HDFS的特点和工作原理。 ### 回答3: Datanode信息是指在Hadoop分布式系统中,存储数据并提供数据读写服务的节点所提供的信息。每个节点存储着划分数据块的一部分数据,并响应客户端的请求,使得数据能够在整个集群中进行读写和计算。 Datanode节点存储的数据块一般为64 MB 到 512 MB大小,数据块的大小可通过配置进行调整。数据块被分散到不同的DataNode上,这样可以保证系统的数据安全性和扩展性。Hadoop内部使用的文件系统是HDFSHDFS通过将文件分成多个数据块,并复制到不同的DataNode上,使得数据的容错性更加高,即使某些DataNode宕机,数据也不会丢失。 在Hadoop中,每个DataNode都会周期性地向NameNode发送心跳信号,告诉NameNode它还存活着,并且可以为客户端提供服务。同时每个DataNode也会向NameNode发送它所拥有的数据块的列表。这样,NameNode就可以知道整个集群中数据块的分布情况,从而更好地管理和维护文件系统。 除了心跳信号和数据块信息以外,每个DataNode还提供一些关于其自身状态和运行情况的信息。这些信息包括DataNode的运行时间、硬盘使用情况、内存使用情况、网络流量等等,这些信息对于系统运维和性能优化非常有用。 综上所述,Datanode信息对于Hadoop系统的稳定性、可扩展性、安全性和性能优化都具有非常重要的作用,因此对于数据科学家、工程师和系统管理员来说都是非常重要的概念。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

b u g

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值