用法:
hdfs dfsadmin -refreshNamenodes datanode6-001:8010
使用场景:
更新了DataNode的配置文件后(一般是删除BlockPool、或者新增BlockPool),用这个命令去重新加载新的配置文件,
让DataNode服务于新的BP、或者停止为删除的BP服务。
For the given datanode, reloads the configuration files, stops serving the removed block-pools and starts serving new block-pools.
举个更具体的例子,当我们使用联邦集群架构的时候,一个DN可以同时作为多个NameSpace的底层数据节点。多个NameSpace用不同的BlockPool区分。
原理解析:
执行了refreshNamenodes命令后,首先会走到org.apache.hadoop.hdfs.server.datanode.BlockPoolManager#refreshNamenodes处理: