如何清除 Hadoop 中的 DFS?
7 回答
你需要做两件事:
从每个节点中删除主 hadoop 存储目录。此目录由 hdfs-site.xml 中的 hadoop.tmp.dir 属性定义。
重新格式化名称节点:
hadoop namenode -format
如果只做(2),它只会删除namenode存储的元数据,但不会删除所有临时存储和datanode块。
bin/hadoop namenode -format
hdfs dfs -rm -r "/*"
(旧答案已弃用)
所以这是我过去必须做的。
1. 导航到 NameNode 上的 hadoop 目录,然后停止所有 hadoop 进程。通过运行默认的 stop-all 脚本。这也将停止 DFS。例如
cd myhadoopdirectory
bin/stop-all.sh
2. 现在,在集群中的每台机器上(Namenodes、JobTrackers、datanodes 等)删除您的主 hadoop 存储中的所有文件,矿井设置为根文件夹中的 temp 文件夹。您的可以在 hadoop.tmp.dir 属性下的 conf hdfs-site.xml 文件中找到,例如
cd /temp/
rm -r *
3.最后回到你的名字节点,通过进入你的hadoop目录并运行'bin/hadoop namenode -format'来格式化它,例如
cd myhadoopdirectory
bin/hadoop namenode -format
4. 通过运行以下命令再次启动您的集群。它还将再次启动 DFS。
bin/start-all.sh
5. 它应该工作。
你可能会发出
hadoop fs -rmr /
这将删除 DFS 下的所有目录和子目录。
另一种选择是停止您的集群,然后发出:
hadoop namenode -format
这将擦除 DFS 上的所有内容,然后再次启动集群。
- 您需要调用
bin/stop-all.sh
以停止 dfs 和 mapreduce。 - 删除conf/hdfs-site.xml和conf/mapred-site.xml中配置的数据目录。
- 确保您已删除 /tmp 目录中存在的一些临时文件。
完成上述所有步骤后,您可以调用bin/hadoop namenode -format
以重新生成 dfs。
阻止你集群
${HADOOP_HOME}/bin/stop-mapred.sh
${HADOOP_HOME}/bin/stop-dfs.sh
或者如果它是伪分布式的,只需发出:
${HADOOP_HOME}/bin/stop-all.sh
格式化你的hdfs
hadoop namenode -format