伪分布式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-hadoop1(hadoop1.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-hadoop1(hadoop1.1.2) => hbase 0.98.0-hadoop1(hadoop1.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-hadoop1(hadoop1.1.2) => hbase 0.98.0-hadoop1(hadoop2.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-hadoop1(hadoop2.2.0) => hbase 0.98.0-hadoop1(hadoop2.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-hadoop1(hadoop2.5.0) => hbase 0.98.0-hadoop2(hadoop2.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,实现无缝对接.
伪分布式hbase从0.94.11版本升级stable的1.4.9版本的更多相关文章
- Ubuntu 14.10 下安装伪分布式hbase 0.99.0
HBase 安装分为:单击模式,伪分布式,完全分布式,在单机模式中,HBase使用本地文件系统而不是HDFS ,所有的服务和zooKeeper都运作在一个JVM中.本文是安装的伪分布式. 安装步骤如下 ...
- 伪分布式hbase数据迁移汇总
https://www.jianshu.com/p/990bb550be3b hbase0.94.11(hadoop为1.1.2,此电脑ip为172.19.32.128)向hbase1.1.2 (ha ...
- HBase(0.94.5)的Compact和Split源码分析
经过对比,0.94.5以后版本主要过程基本类似(有些新功能和细节增加) 一. Compact 2.1. Compact主要来源 来自四个方面:1.Memstoreflush时:2.HR ...
- 伪分布式下Hadoop3.0打不开localhost:50070
伪分布式下Hadoop打不开localhost:50070,可以打开localhost:8088 1.对hdfs进行format hadoop namenode -format 在选择Y/N时输入大写 ...
- 避坑之Hadoop安装伪分布式(Hadoop3.2.0/Ubuntu14.04 64位)
一.安装JDK环境(这个可以网上随意搜一篇教程了照着弄,这里不赘述) 安装成功之后 输入 输入:java -version 显示如下说明jdk安装成功(我这里是安装JDK8) 二.安装Hadoop3. ...
- 安装伪分布式hbase 0.99.0
查看是否启动成功,输入jps,看到有HMaster和HQuorumPeer,浏览器输入http://localhost:16030/master-status,能打开说明成功 hbase(main): ...
- Ubuntu 14.10 下安装伪分布式hive-0.14.0
本地独立模式,MySQL作为元数据库 1 安装环境准备 1.1 安装JDK,在安装hadoop时候已经安装了,参考http://www.cnblogs.com/liuchangchun/p/40972 ...
- windows下eclipse连接ubuntu伪分布式hadoop2.6.0
环境: win10 jdk1.7 hadoop2.6.0 linux虚拟机 Ubuntu14.04 首先把安装在Ubuntu上的hadoop2.6.0.tar.gz复制到windows系统上,解压到任 ...
- 伪分布式hadoop1.1.2和hbase0.94.11配置
Hadoop 1.1.2 和Hbase 0.94.11版本配置 测试时ip 172.19.32.128 这个版本需要把/etc/hosts的aa-vm改成127.0.0.1,也就是和localhos ...
随机推荐
- MySQL--视图view、触发器trigger、事务(start transaction)、存储过程(特殊的数据逻辑处理函数)、流程控制(if,case....)
mysql致力于项目开发及数据库管理之间解耦合(帮忙封装一些数据处理方法,使应用程序的开发者可以专注于应用程序的开发),但受限于不同部门沟通的成本问题,现阶段直接使用的价值不大. 一.视图(只能sel ...
- Spring 邮件发送
前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender 关于邮件服务器的设置就不在这里说了,直接去QQ邮箱 ...
- 安装mysql5.7与创建用户和远程登录授权
环境:ubuntu18.04 参考文章:安装并远程登录授权:https://www.cnblogs.com/chancy/p/9444187.html 用户管理:https://www.cnblogs ...
- web.xml详细选项配置
Web.xml常用元素 <web-app> <display-name></display-name>定义了WEB应用的名字 <description> ...
- MYSQL查询系列 常考问题
表结构: `student`('id'.'name'.'code'.'age'.'sex')学生表 `teacher`('id'.'name')教师表 `course`('id'.'name'.'te ...
- python并发编程之多进程1-----------互斥锁与进程间的通信
一.互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理. 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行 ...
- 【python】给正则匹配部分命名
可以用?P<name>的方法给正则匹配的部分命名. 例:要将<字母,数字>的部分命名为test x = "abc <haha,123> test @@&q ...
- 【深度学习】吴恩达网易公开课练习(class1 week3)
知识点梳理 python工具使用: sklearn: 数据挖掘,数据分析工具,内置logistic回归 matplotlib: 做图工具,可绘制等高线等 绘制散点图: plt.scatter(X[0, ...
- C语言将字符串转json
示例代码: #include <stdio.h> #include <string.h> #include <stdlib.h> char *strrpc(char ...
- DoNetZip类库解压和压缩文件
using Ionic.Zip; public class ZipHelper { public static void ZipSingleFile(string zipPath) { try { u ...