前段时间集群出问题,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. Go语言中Path包用法

    // path package main import ( "fmt" "os" "path" "path/filepath&qu ...

  2. 008-Go 关于字符串拼接

    如果是少量小文本拼接,用 “+” 如果是大量小文本拼接,用 strings.Join 如果是大量大文本拼接,用 bytes.Buffer package main import( "fmt& ...

  3. HttpClient Restful Post 请求

    public static void main(String[] args) { SbVo sb = new SbVo(); sb.setBusiness("SB"); sb.se ...

  4. SQL Server中获取最新插入的自增ID

    SCOPE_IDENTITY()函数 返回的是紧跟这个插入语句生成的自增ID, 若果前一个语句不是插入自增ID的,将返回NULL @@IDENTITY 返回全局的最有一个生成的自增ID,全局可用 cr ...

  5. DOM笔记(十):JavaScript正則表達式

    一.RegExp ECMAScript通过RegExp类型类支持正則表達式,语法和Perl类似: var exp = /pattern/flags; patternb部分是不论什么简单的或复杂的正則表 ...

  6. unique-paths I &II 路径数,动态规划

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  7. 【转发】PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库

    转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全 ...

  8. 修改mysql数据引擎的方法- 提高数据库性能

    前言:同学告我说,他为了能使得数据查询变得快一点,修改的数据引擎,故查询一下,总结一下. 登录mysql后,查看当前数据库支持的引擎和默认的数据库引擎,使用下面命令: mysql>show en ...

  9. windows DLL中使用COM的注意事项

    windows的DLL开发是有需要注意的地方的,不然会造成一些问题.由于我最近的使用不当,又造成了问题,虽然之前有写过一篇笔记, http://www.cnblogs.com/foohack/p/66 ...

  10. Mysql分页之limit用法与limit优化

    Mysql limit分页语句用法 与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭. --语法: SELECT * FROM table LIMIT [offset, ...