zoukankan      html  css  js  c++  java
  • 伪分布式hbase从0.94.11版本升级stable的1.4.9版本

     

    Hbase从0.94.11升级到stable的1.4.9版本:

     升级思路:

    hadoop1.1.2    hbase 0.94.11

                               

    hadoop1.1.2    hbase 0.96.0-hadoop1

                               

    hadoop1.1.2    hbase 0.98.0-hadoop1

                               

    Hadoop2.2.0    hbase 0.98.0-hadoop1

                               

    hadoop2.5.0    hbase 0.98.0-hadoop1

                               

    hadoop2.5.0    hbase 0.98.0-hadoop2

                               

    hadoop2.5.0    hbase 1.0.1.1

                               

    hadoop2.5.0    hbase 1.3.0

                               

    hadoop2.5.0    hbass 1.4.9

    0.94.11 hadoop1.1.2=> hbase 0.96.0-hadoop1hadoop1.1.2

             先安装配置好habse0.96.0后,直接运行habse96版本,hmaster没有启动。

             打开master日志,HBase file layout needs to be upgraded.  You have version 7 and I want version 8.  Is your hbase.rootdir valid?  If so, you may need to run 'hbase hbck -fixVersionFile'.

             因此必须在96版本下进行update.

       步骤:

                先将hbase0.94.11关闭,下载hbase0.96.0。解压配置(此步骤和配置0.94.11相同)。

                 然后在habse0.96.0上运行./bin/hbase upgrade -check来检查hfilev1是否已经完全重写(bin/hbase upgrade -check -dir /myHBase/testable 来检查特定的表。)

                 确认无误后,只启动hbase0.96.0的zookeeper。

          ./hbase/bin/hbase-daemon.sh start zookeeper

                 最后,执行bin/hbase upgrade –execute . 完成最后的升级操作。

                 然后再关闭hbase0.96.0的zookeeper

                        ./hbase/bin/hbase-daemon.sh stop zookeeper

                 最后,启动hbase0.96.0,进入shell后,查看文件的完整性。

    hbase 0.96.0-hadoop1hadoop1.1.2 => hbase 0.98.0-hadoop1hadoop1.1.2

             \hbase0.96必须关闭。

       安装配置好hbase0.98.0-hadoop1,配置(步骤和0.94.11相同)

             开启hbase0.98,实现无缝对接。

            

      此处注意:,HBase 0.98版本保持与0.96版本的兼容,两个版本的客户端和服务器端之间可以无缝互操作。但是0.98版本并没有计划与0.96以及早期版本的Java API保持二进制兼容,因此可能需要重新编译应用程序

    hbase 0.98.0-hadoop1hadoop1.1.2 => hbase 0.98.0-hadoop1hadoop2.2.0

             步骤:

        1.关闭habase

                   2.在hadoop1.1.2上先看一下数据,确保数据存在

                  3.关掉所有hadoop1.1.2的进程,并将关于Hadoop1.1.2所有的相关的环境变量(HADOOP_HOME、PATH等相关环境变量配置)删掉(如果有),以防对Hadoop2.2.0升级的影响。

        4.安装配置hadoop2-2.0, 将Hadoop2的${HADOOP_HOMOE}/etc/hadoop/hdfs-site.xml中dfs.namenode.name.dir和dfs.datanode.data.di属性的值分别指向Hadoop1的${HADOOP_HOME}/conf/hdfs-site.xml中                     dfs.name.dir和dfs.data.dir的值。

        5.启动hadoop2.2.0.

                         ./sbin/start-dfs.sh

        6.会发现错误,去logs/hadoop-aa-namenode-master.log,会看到:

          FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join

          java.io.IOException:

          File system image contains an old layout version -32.

          An upgrade to version -47 is required.

          Please restart NameNode with -upgrade option.

        于是,执行./sbin/hadoop-daemon.sh start namenode –upgrade

        最后在jps一下,可以看到都正常启动了。

                      

         7.最后查看数据,同时登陆web管理界面。

                   8. 升级完成后,会在namenode的dfs.namenode.name.dir目录和dfs.datanode.data.dir目录下多出一个previous/ 目录。如果确认升级成功后,可以根据实际情况决定是否需要删掉这个目录,运行以下命令把以           前的版本删掉:

    bin/hdfs dfsadmin –finalizeUpgrade

        (-finalizeUpgrade 不是升级必须的,所以根据实际情况去执行。一旦执行该命令,会删掉旧版本数据,以后就不能回滚了。)

                      如果失败,数据回滚:

          如果升级失败,可以随时回滚,回滚,数据会回滚到升级前那一刻的数据,升级后的数据修改,全部失效,回滚启动步骤如下:

           1. 启动namenode: /usr/local/hadoop1.0.2/bin/hadoop-daemon.sh start namenode –rollback

           2.  启动datanode: /usr/local/hadoop1.0.2/bin/hadoop-daemon.sh start datanode –rollback

    hbase 0.98.0-hadoop1hadoop2.2.0 => hbase 0.98.0-hadoop1hadoop2.5.0

                       步骤基本和上部基本一致,master日志错误:

          java.io.IOException:

          File system image contains an old layout version -47.

          An upgrade to version -57 is required.

          Please restart NameNode with the "-rollingUpgrade started" option if a rolling upgrade is already started; or restart NameNode with the "-upgrade" option to start a new upgrade.

    hbase 0.98.0-hadoop1hadoop2.5.0 => hbase 0.98.0-hadoop2hadoop2.5.0

        安装好hbase0.98-hadoop2.

        配置好,其中rootdir必须指向hadoop2.5.0的数据目录。(如果hadoop2.5从其他版本升级过来,也就是hadoop2.5.0的数据路径指向原来hadoop的数据路径,那么hbase的就指向原来hadoop的数据路径)

    hadoop2.5.0    hbase 0.98.0-hadoop2 => hadoop2.5.0    hbase 1.0.1.1

        \hbase0.98-hadoop2必须关闭。

        安装配置好hbase1.0.11,配置(步骤和0.94.11相同)

                 开启hbase1.0.11,实现无缝对接。

            

        此处注意:,HBase 0.98版本保持与1.0.11版本的兼容,两个版本的客户端和服务器端之间可以无缝互操作。但是0.98版本并没有计划与1.0.11以及早期版本的Java API保持二进制兼容,因此可能需要重新编译        应用程序,来获得1.x版本的新特性。

    hadoop2.5.0    hbase 1.0.1.1 => hadoop2.5.0    hbase 1.3.0

      \hbase1.0.1.1必须关闭。

      安装配置好hbase1.3.0,配置(步骤和0.94.11相同)

             开启hbase1.3.0,实现无缝对接。

    hadoop2.5.0    hbase 1.3.0=> hadoop2.5.0    hbase 1.4.9

       \hbase1.3.0必须关闭。

      安装配置好hbase1.4.9,配置(步骤和0.94.11相同)

             开启hbase1.4.9,实现无缝对接.

  • 相关阅读:
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次软工作业
    antd form表单数组对象格式
    antd form表单验证失去焦点时验证和重置验证状态
    fetch请求
    typescript类装饰器
    typescript泛型
    浮点数问题
  • 原文地址:https://www.cnblogs.com/dhName/p/10469646.html
Copyright © 2011-2022 走看看