Hadoop 在关机重启后,namenode启动报错

Hadoop 在关机重启后,namenode启动报错:
2011-10-21 05:22:20,504 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /tmp/hadoop-fzuir/dfs/name does not exist.  
2011-10-21 05:22:20,506 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.  
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-fzuir/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.  
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:291)  
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97)  
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:379)  
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:353)  
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:254)  
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:434)  
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1153)  
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1162)  
这个以开始的解决方法是将namenode重新再format下,但是后面想想不对,这样每次都format,那不是玩完了~~
然后就搜了下,发现是因为临时文件/tmp会被删除掉,解决方法就是修改core-site.xml,添加hadoop.tmp.dir属性:
<property>  
    <name>hadoop.tmp.dir</name>  
    <value>/home/fzuir/Hadoop0.20.203.0/tmp/hadoop-${user.name}</value>  
</property>  

问题解决了,重启电脑后,再去启动hadoop就不会出现/dfs/name is in an inconsistent state的错误了~~

转自:http://www.linuxidc.com/Linux/2012-02/55079.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Hadoop 在格式化 Namenode 时会执行文件系统初始化操作,如果出现报错,通常是由于 Namenode 已经被格式化过或者正在运行导致的。 解决方案: 1. 停止 Hadoop 集群,确保 Namenode 没有在运行 2. 清空 Namenode 的数据目录(通常为 $HADOOP_HOME/dfs/namenode) 3. 重新启动 Hadoop 集群,并执行格式化 Namenode 的操作 如果还是不能解决问题,可以尝试查看 Hadoop 的日志文件,以确定问题的具体原因。 ### 回答2: Hadoop是一个开源的分布式计算框架,它的核心组件之一是HDFS(Hadoop分布式文件系统)。HDFS中有一个重要的节点Namenode,用于管理HDFS的元数据并维护文件系统的整体结构。如果Namenode出了问题,整个HDFS的文件系统都将无法工作。为了防止这种情况的发生,需要周期性地进行Namenode的格式化和备份。但是,在进行Namenode格式化的过程中,有时会遇到出现报错的情况。 可能的原因: 1.文件系统中有损坏的块,或者存在未完成的操作; 2.数据节点宕机或网络故障; 3.格式化进程被中断或异常终止。 解决方法: 首先,需要在将HDFS格式化前对其进行备份,以便在出现问题时进行恢复。在备份后,可以尝试以下步骤: 1.检查Hadoop配置文件中是否设置了正确的文件路径、权限等; 2.检查集群中所有节点的网络连接是否正常,特别是确保Namenode节点的网络连接稳定; 3.检查数据节点是否需要重新启动或连接,挂载必要的卷; 4.检查格式化进程是否完整执行。 如果以上步骤都无法解决问题,可以考虑手动清空Namenode节点,再重新格式化。需要注意的是,在手动清空前,需要备份所有重要的元数据信息。 总之,在遇到Hadoop格式化Namenode报错问题时,我们应该逐一排除各种可能的原因,并根据具体情况进行操作,以确保Hadoop集群能够顺利运行。 ### 回答3: Hadoop是一个开源的分布式存储和计算框架,能够处理PB级别的数据集。其中,NameNode(名称节点)是Hadoop的重要组成部分,它负责存储文件系统的元数据信息,如文件名、文件大小、文件所属用户和权限等信息,以及数据块的位置信息等。当NameNode发生故障时,整个Hadoop分布式集群都将无法正常工作。因此,对NameNode进行格式化是一项非常重要的任务,可以彻底清除所有元数据和数据块信息,以便重新构建一个干净的文件系统。 Hadoop格式化NameNode报错可能有多种原因,例如系统配置问题、文件系统损坏等。以下是可能遇到的一些问题和具体解决方法: 1.权限不足问题: 在进行格式化NameNode时,系统可能会提示没有足够的权限,无法进行操作。此时需要使用root用户或者具有管理员权限的用户来执行格式化命令。 2.文件系统损坏问题: 由于各种原因,文件系统可能会出现损坏,导致NameNode无法正常启动。此时需要进行文件系统修复操作。首先需要停止Hadoop集群,然后使用以下命令修复文件系统: $ hdfs fsck / -files -blocks -locations 如果系统发现有数据损坏,则显示出文件系统中受损文件的信息。在修复受损的文件后,可以再次尝试格式化NameNode。 3.磁盘空间不足问题: 如果磁盘空间不足,会导致无法进行NameNode的格式化操作。此时需要清理磁盘空间或扩大磁盘大小。可先使用以下命令查看磁盘使用情况: $ df -h 如果磁盘空间紧张,可以使用以下命令清理不必要的文件和日志等: $ rm -rf /usr/local/hadoop/logs/* 另外,可以使用以下命令扩大磁盘空间大小: $ lvextend /dev/mapper/hadoop-disk -L +10G 最后,总之,当Hadoop格式化NameNode报错时,需要查看具体错误提示,进行问题排查和解决。通过以上措施可以尽可能地修复大多数问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值