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