1)向include文件中添加新节点的网络地址;
2)使用以下命令更新NameNode中具有连接权限的DataNode集合: hadoop dfsadmin-refreshNodes
3)更新带有新节点的slaves文件,以便Hadoop控制脚本在执行后续操作时可以使用更新后的slaves文件中的所有节点;
4)启动新的数据节点;
5)重新启动MapReduce集群;
6)检查网页用户界面是否有新的DataNode和TaskTracker。
需要注意的是,HDFS不会自动将旧DataNode上的数据转移到新的DataNode中,但我们可以运行平衡器命令进行集群均衡。
1)将需要撤销的节点的网络地址增加到exclude文件中,注意,不要在此时更新include文件;
2)重新启动MapReduce集群来终止已撤销节点的TaskTracker;
3)用以下命令更新具有新的许可DataNode节点集的NameNode: hadoop dfsadmin-refreshNodes
4)进入网络用户界面,先检查已撤销的DataNode的管理状态是否变为“DecommissionIn Progress”,然后把数据块复制到集群的其他DataNode中;
5)当所有DataNode报告其状态为“Decommissioned”时,所有数据块也都会被复制,此时可以关闭已撤销的节点;
6)从include中删除节点网络地址,然后再次运行命令:hadoop dfsadmin-refreshNodes
7)从slaves文件中删除节点。
1.include文件控制添加节点信息,exclude文件控制删除节点信息。
2. 对于TaskTracker来说,一个未定义的或空的include文件意味着所有的节点都包含其中。
3.TaskTracker是否可以连接到JobTracker,其规则很简单,只要include文件中包含且exclude中不包含这个TaskTracker。
include文件是否包含 | exclude文件是否包含 | 解释 |
---|---|---|
否 | 否 | 节点可以链接 |
否 | 是 | 节点不可以链接 |
是 | 否 | 节点可以链接 |
是 | 是 | 节点可以链接和撤回 |