具体步骤
(1)将要删除的datanode加入到dfs.hosts.exclude指定的文件中。(最好使用主机名,IP有时可能不生效)
(2)动态刷新配置,不需要重启namenode
hadoop dfsadmin -refreshNodes
(3)通过hadoop dfsadmin -report或webui,可以看到,该datanode的状态为Decommissioning
(4)等待一段时间,该节点为dead状态。
(5)删除dfs.hosts文件中该节点 即下架目标机器后,再次编辑dfs.hosts.exclude,把刚才下架的机器的ip或机器名移走
(6)
hadoop dfsadmin -refreshNodes
注:按照上面的操作后,如果你想要重新启用该节点为datanode,从dfs.hosts.exclude中删除该节点,refreshNodes,然后,到该节点上,重启启动该datanode:
/usr/local/hadoop/bin/hadoop-daemon.sh stop datanode
/usr/local/hadoop/bin/hadoop-daemon.sh start datanode
注:正确的删除datanode的方法应该是按照上面的方法,使用exclude文件,而不应该直接去datanode上去sotp datanode,这样会造出数据丢失,而且stop以后,webui和hadoop dfsadmin -report都仍然显示该datanode节点。除非重新启动namenode。
之所以重新启用exclude的节点时可以stop datanode,因为此时该datanode不包含在cluster中,所以,stop后不会造成数据丢失。
可以利用io流的知识, files.delete(),但前提是,这个文件夹必须是空的,或者你想直接删除的话,可以在 dos命令窗口进行删除
打开命令窗口后 输入目标文件路径 : del 文件名 删除指定的文件。 注意: del后面如果跟一个文件夹,那么是删除一个文件夹中的所有文件。(千万注意,删除的时候不要错删了其它有用文件,因为删除了,就找不回来了)
Hadoop|
Apache Pig|
Apache Kafka|
Apache Storm|
Impala|
Zookeeper|
SAS|
TensorFlow|
人工智能基础|
Apache Kylin|
Openstack|
Flink|
MapReduce|
大数据|
云计算|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....