问题描述:由于之前使用了hadoop0.20.203,该版本不支持append,导致Hbase在宕机时会丢失数据,补数据是在是费力不讨好,索性将HDFS升级,顺便把Hbase也一并升了。
注意:这里只演示在一台机器上的升级,集群中其他机器同理升级完毕后,方可正常使用集群。
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元数据(以防万一,这个在hdfs-site.xml中dfs.name.dir对应目录下的文件)
(5)将下载好的hadoop-1.0.3.tar.gz解压到要安装的目录,我这里是/home/jxw,并改名为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)
2. Hbase升级步骤:
(1)当hadoop升级成功后,将hbase-0.94.1.tar.gz解压到所要安装的目录,我这里是/home/jxw,并改名为Hbase
(2)配置新版hbase下conf中的文件(如同你第一次安装hbase一样)
(3)如果需要,也同样修改环境变量,如HBASE_HOME等
(4)启动zookeeper
(5)启动新版hbase
(6)使用网页监控或者hbase shell检查hbase中的数据是否完整无缺
至此,hadoop和hbase的升级已完成,可以使用网页或者命令查看hadoop和hbase的版本。