1、重新格式化意味着集群的数据会被全部删除,格式化前需考虑数据备份或转移问题;
2、先删除主节点(即namenode节点),Hadoop的临时存储目录tmp、namenode存储永久性元数据目录dfs/name、Hadoop系统日志文件目录log 中的内容 (注意是删除目录下的内容不是目录);
3、删除所有数据节点(即datanode节点) ,Hadoop的临时存储目录tmp、namenode存储永久性元数据目录dfs/name、Hadoop系统日志文件目录log 中的内容;
4、格式化一个新的分布式文件系统:
$ hadoop namenode -format
注意
(1)Hadoop的临时存储目录tmp(即core-site.xml配置文件中的hadoop.tmp.dir属性,默认值是**/tmp/hadoop- u s e r . n a m e ∗ ∗ ),如果没有配置 h a d o o p . t m p . d i r 属性,那么 h a d o o p 格式化时将会在 ∗ ∗ / t m p ∗ ∗ 目录下创建一个目录,例如在 c l o u d 用户下安装配置 h a d o o p ,那么 H a d o o p 的临时存储目录就位于 ∗ ∗ / t m p / h a d o o p − c l o u d ∗ ∗ 目录下 ( 2 ) H a d o o p 的 n a m e n o d e 元数据目录(即 h d f s − s i t e . x m l 配置文件中的 d f s . n a m e n o d e . n a m e . d i r 属性,默认值是 ∗ ∗ {user.name}**),如果没有配置hadoop.tmp.dir属性,那么hadoop格式化时将会在**/tmp**目录下创建一个目录,例如在cloud用户下安装配置hadoop,那么Hadoop的临时存储目录就位于**/tmp/hadoop-cloud**目录下 (2)Hadoop的namenode元数据目录(即hdfs-site.xml配置文件中的dfs.namenode.name.dir属性,默认值是** user.name∗∗),如果没有配置hadoop.tmp.dir属性,那么hadoop格式化时将会在∗∗/tmp∗∗目录下创建一个目录,例如在cloud用户下安装配置hadoop,那么Hadoop的临时存储目录就位于∗∗/tmp/hadoop−cloud∗∗目录下(2)Hadoop的namenode元数据目录(即hdfs−site.xml配置文件中的dfs.namenode.name.dir属性,默认值是∗∗{hadoop.tmp.dir}/dfs/name**),同样如果没有配置该属性,那么hadoop在格式化时将自行创建。必须注意的是在格式化前必须清楚所有子节点(即DataNode节点)dfs/name下的内容,否则在启动hadoop时子节点的守护进程会启动失败。这是由于,每一次format主节点namenode,dfs/name/current目录下的VERSION文件会产生新的clusterID、namespaceID。但是如果子节点的dfs/name/current仍存在,hadoop格式化时就不会重建该目录,因此形成子节点的clusterID、namespaceID与主节点(即namenode节点)的clusterID、namespaceID不一致。最终导致hadoop启动失败。