前段时间集群出问题,hadoop和hbase启动不了了。

后来hadoop回复了,hbase死活master无法启动。打开日志发现报了以下错误:

WARNING! File system needs to be upgraded. You have version null and I want version 7. Run the '${HBASE_HOME}/bin/hbase migrate' script.

于是上网search,网上这位兄弟提供了解决办法:

http://www.cnblogs.com/colorfulkoala/archive/2013/03/25/2980628.html

现在摘录如下:

WARNING! File system needs to be upgraded. You have version null and I want version 7. Run the '${HBASE_HOME}/bin/hbase migrate' script.

不用担心,其实你只是缺少个正常的hbase.version文件!

机房整体停电,集群所有节点都挂掉了。这种情况很少见,但是在管理不善的实验室也会时有发生。所以要沉着应对,相信hadoop的容灾性,一定能恢复数据。

hdfs的备份数只有2,长期在跑的有个数据不大的入库程序,节点很少才5个。

首先启动hadoop之后先运行

bin/hadoop dfsadmin -safemode wait

等待其退出安全模式,发现半分钟后没有反映,意识到肯定是出问题了在运行:

bin/hadoop fsck / 

检查一下hdfs的健康状态,发现有很多corrupt blocks,不过还好备份数大于1.此时,hdfs需要自动的把备份数增加到2,所以需要对数据进行写操作,必须退出安全模式,于是:

bin/hadoop  dfsadmin -safemode leave

关闭之后等待集群把数据备份好,达到2,吃个饭回来,运行:

bin/hadoop  fsck -move

把那些破坏的块移到/lost+found这个目录下面,启动Hbase,发现Hmaster启动之后就悄悄挂调了,查看日志:

WARNING! File system needs to be upgraded. You have version null and I want version 7. Run the '${HBASE_HOME}/bin/hbase migrate' script.

而zk日志显示 client端关闭了session。很多人按照他的提示运行了migrate脚本,实际上这个会报错:ClassNotFound。这就奇怪了,文件系统居然要求升级,这很不科学。我看很多网友的做法是先把/hbase清理调,然后重启就好了,但是以前的数据就丢失了,这更不科学。于是我:

bin/hadoop -ls /hbase

发现/hbase/hbase.version已经消失了,这才恍然大悟,原来是之前的这个文件可能被损坏了,去/lost+found目录找确实能找到,但是这个文件似乎出了问题,-ls它也看不到。于是想到一个办法,我做了以下操作:

bin/hadoop fs -mv /hbase /hbase.bk

重启HBase,这时就生成了/hbase/hbase.version文件,然后:

bin/hadoop fs -cp /hbase/hbase.version /hbase.bk/

bin/hadoop fs -rmr /hbase 

bin/hadoop fs -mv /hbase.bk /hbase

这样再次重启HBase,发现Hbase开始splitting hlogs,数据得以恢复。

【转】WARNING! File system needs to be upgraded. You have version null and I want version 7. Run the '${HBASE_HOME}/bin/hbase migrate' script. 的解决办法的更多相关文章

  1. File system needs to be upgraded. You have version null and I want version 7

    安装hbase时候报错: File system needs to be upgraded. You have version null and I want version 7 注: 我安装的hba ...

  2. Unity3d 提示 "The scripts file name does not match the name of the class defined in the script!"的解决办法

    有两个原因,一个是文件的名称和类名不一致 第二个原因是有命名空间, 排除应该是可以修复的

  3. Extension of write anywhere file system layout

    A file system layout apportions an underlying physical volume into one or more virtual volumes (vvol ...

  4. 【ASP.NET MVC】"[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 ..."的解决办法

    1.错误页面: “/”应用程序中的服务器错误. [A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]System.Web ...

  5. cloudera-agent启动File not found : /usr/sbin/cmf-agent解决办法(图文详解)

    不多说,直接上干货! 问题详情 bigdata@nssa-sensor1:~$ sudo service cloudera-scm-agent startFile not found : /usr/s ...

  6. 下载的pod链接失效,build diff: /../Podfile.lock: No such file or directory解决办法

    build diff: /../Podfile.lock: No such file or directory 1.终端进入文件路径,执行pod install 2.在工程设置中的Build Phas ...

  7. Linux 执行partprobe命令时遇到Unable to open /dev/sr0 read-write (Read-only file system)

    在使用fdisk创建分区时,我们会使用partprobe命令可以使kernel重新读取分区信息,从而避免重启系统,但是有时候会遇到下面错误信息"Warning: Unable to open ...

  8. ORA-00245: control file backup failed; target is likely on a local file system

    ORACLE11G RAC alert报错如下:Errors in file /u01/app/oracle/diag/rdbms/dljyzs/dljyzs1/trace/dljyzs1_ora_8 ...

  9. rm: cannot remove `/home/cn0000/log/formlog.20140417': Read-only file system

    [root@localhost home]# su - cn0000 rm: cannot remove `/home/cn0000/log/monitor_xmllog.20140417': Rea ...

随机推荐

  1. Mina.Net实现的UDP多路广播

    主要用于未确定主机地址的情况下,可以使用多路广播和服务端通信,下面是官方提供的DEMO. using System; using System.Net; using System.Net.Socket ...

  2. Nginx 访问日志分析

    0:Nginx日志格式配置 # vim nginx.conf ## # Logging Settings ## log_format access '$remote_addr - $remote_us ...

  3. 方法(method)和函数(function)有什么区别?

    方法(method)和函数(function)有什么区别? 定义和参数区别 函数是独立的功能,与对象无关,需要显示的传递数据 方法与对象和类相关,依赖对象而调用,可以直接处理对象上的数据,也就是隐式传 ...

  4. jmap 命令

    1.  jmap -heap pid          查看java 堆(heap)使用情况         using thread-local object allocation.         ...

  5. Orabbix监控Oracle 11g

    Orabbix简介说明 orabbix是一个用来监控oracle数据库性能的zabbix插件工具,通过安装在被监控服务器上客户端上收集数据并传给zabbix服务器端,然后通过调用图形显示.具有以下功能 ...

  6. kettle 如何将excel文件导入oracle数据库?

      1.情景展示 昨日,有一批数据需要导入数据库,但是,plsql不知为何不能导了,于是,我选择使用kettle完成excel数据的导入. 2.准备工作 将对应的数据库所需的jar包拷贝至其lib目录 ...

  7. ubuntu普通账户获取root权限的方法以及su和su -的区别

    打开命令窗口 输入命令:sudo passwd root 然后按照上图中的操作进行即可. su和su -的命令的不同: su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shel ...

  8. CentOS7统计某个进程当前的线程数

    方式一: cat /proc/[pid]/status 展示结果中,Threads后边对应的数字就是进程拥有的线程数量 方式二: |wc -l

  9. 【图像处理】openCV光流法追踪运动物体

    openCV光流法追踪运动物体 email:chentravelling@163.com 一.光流简单介绍 摘自:zouxy09 光流的概念是Gibson在1950年首先提出来的.它是空间运动物体在观 ...

  10. Java反编译工具:Java Decompiler

    Java Decompiler项目旨在开发一套工具集,这套工具集可以反编译并分析Java5之后的Java字节码. 它主要包括四个部分. JD-Core:Java Decompiler的核心库,它能够根 ...