Hadoop namenode重新格式化需注意问题

  • Post author:
  • Post category:其他


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-${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启动失败。



版权声明:本文为gis_101原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。