Hadoop HDFS DN工作机制 数据完整性
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1418454027-192.168.1.102-1607949404504/current/finalized/subdir0/subdir0
这个目录下保存的是datanode数据:
.meta不是一个普通的文件,使用cat不能查看。
.meta是校验和。保证数据的完整性。DN会周期性的校验block,Hadoop HDFS DN工作机制 掉线时限参数设置
服役新数据节点
hadoop的扩展性很好,体现在:
集群中有三台机器,之后发现三台不够,需要横向扩展到四台机器,动态添加机器,这个叫做服役新数据节点
集群中有一些机器闲置用不着,就需要退役旧节点
怎么将一台新机器加入到我们的集群中呢?
在web端查看节点:
加新机器的时候,需要停掉现有的机器吗?
不需要,很简单,只是启动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
所以它会自动加到我们的集群里面。
workers不需要修改,workers是需要群起群停的时候的文件。当我的集群启动起来之后,和workers文件没啥关系了。对于动态加一个节点,可以不用去修改workers
准备一台机器,该配置的环境配好,就行了
如果是克隆的104机器,那就需要手动删除data和logs目录,要不然会认为105和104是同一台机器,还是一直显示在集群里面有三台机器,只不过4和5在随机更换。为了解决这个问题,让他一直都是2345,四台机器,需要删除105的data和logs目录
如果原有的三台机器的数据都是满的。新加入的机器的内存是空的。这时候集群的数据是不平衡的,需要做数据的再平衡。
Hadoop HDFS DN工作机制 配置白名单和黑名单
怎么退役旧节点(白名单和黑名单)
在搭建集群的时候就需规划好这个东西。两种方式都可以,但是推荐使用黑名单的方式来退役旧节点。
其实白名单和黑名单只是对NN有用,2NN和DN知不知道都无所谓。
在这个目录下面创建两个文件
在白名单里面写:
如果不配置白名单,就没有任何的限制,只要你是个DN,你就能加入到我的集群列表中。
现在需要把105这个节点退役掉,就需要把该节点加到黑名单里面去。一定要去修改102(有NN)这一方
现在在黑名单中已经加入了105但是现在还不会生效,刷新节点
hdfs dfsadmin -refreshNodes
刚才我们改的配置文件blacklist,并没有做分发操作,这个只对nn管用。
目前105还是正常的
我们现在执行刷新操作:
hdfs dfsadmin -refreshNodes
从退役中慢慢的进行退役。
退役有一个过程,这样退役不会丢失数据,需要完成交接事务。
这个时候,这些小文件对内存而言是一个一个文件,对NamoNode而言是个整体。