Hadoop HDFS DN工作机制 数据完整性

HDFS  DN工作机制_hadoop


HDFS  DN工作机制_hadoop_02


/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1418454027-192.168.1.102-1607949404504/current/finalized/subdir0/subdir0

这个目录下保存的是datanode数据:

HDFS  DN工作机制_hadoop_03


.meta不是一个普通的文件,使用cat不能查看。

HDFS  DN工作机制_数据_04


.meta是校验和。保证数据的完整性。DN会周期性的校验block,Hadoop HDFS DN工作机制 掉线时限参数设置

服役新数据节点

HDFS  DN工作机制_hadoop_05


hadoop的扩展性很好,体现在:

集群中有三台机器,之后发现三台不够,需要横向扩展到四台机器,动态添加机器,这个叫做服役新数据节点

集群中有一些机器闲置用不着,就需要退役旧节点

怎么将一台新机器加入到我们的集群中呢?

在web端查看节点:

HDFS  DN工作机制_hadoop_06


HDFS  DN工作机制_hadoop_07


HDFS  DN工作机制_hdfs_08


HDFS  DN工作机制_hadoop_09


加新机器的时候,需要停掉现有的机器吗?

不需要,很简单,只是启动DN就行了。因为,DN启动之后,会主动去找大哥NN。hadoop105是复制hadoop104,修改ip和hostname

在hadoop105上:hadoop --daemon start datanode

这时候会出现问题,在web端,刷新一下

一会儿是234,一会儿是235.发现4和5机器随机出现。

在105上停掉

hdfs --daemon stop datanode

把data和logs文件删掉

然后直接启动datanode

hdfs --daemon start datanode

HDFS  DN工作机制_hdfs_10


HDFS  DN工作机制_hdfs_11

HDFS  DN工作机制_hdfs_12


所以它会自动加到我们的集群里面。

workers不需要修改,workers是需要群起群停的时候的文件。当我的集群启动起来之后,和workers文件没啥关系了。对于动态加一个节点,可以不用去修改workers

准备一台机器,该配置的环境配好,就行了

如果是克隆的104机器,那就需要手动删除data和logs目录,要不然会认为105和104是同一台机器,还是一直显示在集群里面有三台机器,只不过4和5在随机更换。为了解决这个问题,让他一直都是2345,四台机器,需要删除105的data和logs目录

HDFS  DN工作机制_hadoop_13

如果原有的三台机器的数据都是满的。新加入的机器的内存是空的。这时候集群的数据是不平衡的,需要做数据的再平衡。

Hadoop HDFS DN工作机制 配置白名单和黑名单

怎么退役旧节点(白名单和黑名单)

在搭建集群的时候就需规划好这个东西。两种方式都可以,但是推荐使用黑名单的方式来退役旧节点。

其实白名单和黑名单只是对NN有用,2NN和DN知不知道都无所谓。

HDFS  DN工作机制_hadoop_14

在这个目录下面创建两个文件

HDFS  DN工作机制_hadoop_15


在白名单里面写:

HDFS  DN工作机制_hadoop_16


如果不配置白名单,就没有任何的限制,只要你是个DN,你就能加入到我的集群列表中。

现在需要把105这个节点退役掉,就需要把该节点加到黑名单里面去。一定要去修改102(有NN)这一方

HDFS  DN工作机制_数据_17


现在在黑名单中已经加入了105但是现在还不会生效,刷新节点

hdfs dfsadmin -refreshNodes

刚才我们改的配置文件blacklist,并没有做分发操作,这个只对nn管用。

目前105还是正常的

HDFS  DN工作机制_hdfs_18


我们现在执行刷新操作:

hdfs dfsadmin -refreshNodes

HDFS  DN工作机制_hdfs_19


HDFS  DN工作机制_hadoop_20


HDFS  DN工作机制_hadoop_21


从退役中慢慢的进行退役。

HDFS  DN工作机制_数据_22


退役有一个过程,这样退役不会丢失数据,需要完成交接事务。

HDFS  DN工作机制_数据_23


HDFS  DN工作机制_数据_24


这个时候,这些小文件对内存而言是一个一个文件,对NamoNode而言是个整体。