现在的位置: 首页 > 综合 > 正文

Hadoop Hbase 升级

2013年10月04日 ⁄ 综合 ⁄ 共 1574字 ⁄ 字号 评论关闭

原文 http://software.intel.com/zh-cn/blogs/2013/06/26/hadoop-hbase/?utm_campaign=CSDN&utm_source=intel.csdn.net&utm_medium=Link&utm_content=others-%20Hadoop

Hadoop HDFS 与Hbase升级笔记

由于之前使用了hadoop1.0.2,hbase 使用的是hbase-0.92.1 但是一次事故导致元数据丢失,且修复元数据的类本身有BUG。所以摆在眼前的只有两条路:
1、修改hbase源码重新编译 hbase 修复BUG

2、升级到下一个版本,且这个版本已经修复了此BUG 从release node中看到 0.92.2及以后版本均修复了此bug所以决定升级到最新的稳定版 hbase-0.94.3 而此版本的hbase 和hadoop-1.0.4 的兼容性最好,所以hadoop 连带升级到hadoop-1.0.4

1. Hadoop升级步骤:

(1)停止集群上的所有MR任务,包括Hbase(如果Hbase在使用中,先停掉,接着是zookeeper)

(2)停止DFS(1、2两步也可以在hbase和zookeeper关闭后使用stop-all.sh脚本直接关闭)

(3)删除临时数据,即在core-site.xml中设置的hadoop.tmp.dir的value所文件目录下的文件

(4)备份HDFS元数据

(5)将下载好的hadoop-1.0.4.tar.gz解压到要安装的目录,我这里是/home/hbase,并改名为Hadoop,并配置hadoop/conf下的相应文件

(6)配置环境变量,如HADOOP_HOME、HADOOP_HOME_CONF等(如果你升级所用的hadoop安装目录与原来的不一致的话)

(7)使用HADOOP_HOME/bin下的start-dfs.sh -upgrade命令升级

(8)等待升级完毕后,使用HADOOP_HOME/bin下的

hadoop fsck -blocks

查看HDFS是否完整并健康运行

(9)当集群正常并运行一段时间以后(如果确定没数据丢失,也可以立即final),使用

hadoop dfsadmin -finalizeUpgrade

进行版本的序列化(在这之前如果你没有删除原来版本hadoop的,你完全可以使用

start-dfs.sh -rollback

返回到原来版本的hadoop)

 (10) finalizeUpgrade之后,需重启集群,空间才会释放,或hadoop namenode -finalize

2. Hbase升级步骤:

(1)当hadoop升级成功后,将hbase-0.94.3.tar.gz解压到所要安装的目录,我这里是/home/hbase,并改名为Hbase

(2)配置新版hbase下conf中的文件(如同你第一次安装hbase一样)

(3)如果需要,也同样修改环境变量,如HBASE_HOME等

(4)启动zookeeper

(5)启动新版hbase

(6)使用网页监控或者hbase shell检查hbase中的数据是否完整无缺

3.hadoop 升级监控

bin/hadoop dfsadmin -upgradeProgress

命令来查看版本升级的情况

bin/hadoop dfsadmin -upgradeProgress details

来查看更多的详细信息

当升级过程被阻塞的时候,你可以使用

bin/hadoop dfsadmin -upgradeProgress force

来强制升级继续执行(这个命令比较危险,慎重使用)。

当HDFS升级完毕后,Hadoop依旧保留着旧版本的有关信息,以便你可以方便的对HDFS进行降级操作。
可以使用

bin/start-dfs.sh -rollback

来执行降级操作。

抱歉!评论已关闭.