Hadoop Hbase 升级

来源:互联网 发布:统计地图软件 编辑:程序博客网 时间:2024/06/06 05:11

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来执行降级操作。