天天看点

Hypertable的升级安装

原文地址:http://hypertable.com/documentation/installation/upgrade/。因为Hypertable的独立安装模式较为少见,故原文中独立安装模式部分没有翻译。

验证版本间升级兼容性

为了判断已安装的版本和欲升级到的版本之间是否兼容,需要使用官方提供的脚本(ugrade-ok.sh)进行验证。脚本用法如下:
$ /opt/hypertable/current/bin/upgrade-ok.sh
usage: upgrade-ok.sh  
description:
  Determines whether or not the upgrade from Hypertable
  version  to version  is valid.   and 
  are assumed to be Hypertable installation directories
  whose last path component is either a version number or
  the symbolic link "current" which points to a Hypertable
  installation directory whose last path component is a
  version number.
return:
  Zero if upgrade is OK, non-zero otherwise
           
可以用如下命令验证当前正在使用的版本和0.9.7.0版本之间的兼容性。
$ /opt/hypertable/current/bin/upgrade-ok.sh /opt/hypertable/current 0.9.7.0
$ echo $?
0
           
可以如下命令验证两个指定版本之间的兼容性。
$ /opt/hypertable/current/bin/upgrade-ok.sh 0.9.3.0 0.9.4.0
Incompatible upgrade a: 0.9.3.0 -> 0.9.4.0
$ echo $?
1
           

兼容性的升级

如果旧版本和新版本之间是升级兼容的,则升级过程既快速,又不麻烦,只需要遵循下列四个步骤即可:

第一步:停止Hypertable

执行关闭集群命令:$ cap stop

第二步:安装新包

可以从网上下载Hypertable的二进制安装包,也可自己从源码编译。将rmp、dmg或者tar.bz2格式的安装包放在源机器的任一具有访问权限的目录下,源机器可以是集群里面的任一台集群,例如admin1机器。修改capfile文件中的hypertable_version和default_pkg变量,前者设为当前需要升级到的版本,后者设为安装包在源机器上的绝对路径。例如:如果需要升级到0.9.7.0版本,并且安装包为rpm格式,则变量设置如下:

set :hypertable_version, "0.9.7.0"

set :default_pkg,        "/tmp/hypertable-0.9.7.0-linux-x86_64.rpm"

为了分发和安装Hypertable二进制安装包到集群中所有机器,需要执行命令:$ cap install_package

该命令将同步安装包到所有机器,并根据不同的包类型使用不同的包管理器(rpm、dpkg或者tar)进行安装。

第三步:升级

执行升级命令:$ cap upgrade. 此命令包含三个行为:

1. 验证升级格式兼容的;

2. 拷贝旧版本下conf、hyperspace、fs、run和log目录的内容到新版本中。如果有些目录已经创建了符号连接,则仅在新版本下创建相同的符号链接,而不会发生内容拷贝。

3. 在所有机器上设定current符号链接指向新的安装目录。

第四步:启动Hypertable

执行启动命令:$ cap start

不兼容性的升级

如果旧版本和新版本之间升级不兼容,则需要备份和恢复所有的表。升级步骤如下:

1. 使用backup.sh脚本备份表;

2. 删除旧版本的安装,例如:rm -rf /opt/hypertable/$OLDVERSION;

3. 安装新的版本;

4. 使用restore.sh脚本恢复表。