注意事项: 升级之前要核实当前的hadoop版本是否和升级之后的hive版本兼容。
具体的升级步骤如下:
1.关闭当前hive正在执行的进程,service hive-server等
关闭掉之前开启的hive连接服务,要是没开就不用关;打开的客户端也要关掉。
2.备份mysql数据库hive库
mysqldump -uroot -phive hive > schem_hive-0.7.1.sql
这个用于升级失败之后的回滚。
3.修改环境变量,主要是HIVE_HOME
4.解压0.11.0的安装包,
进入目录: ${HIVE_HOME}/scripts/metastore/upgrade/mysql/
下面有如下的脚本:
-rw-rw-r-- 1 hadoop hadoop 271 May 12 00:06 upgrade-0.5.0-to-0.6.0.mysql.sql
-rw-rw-r-- 1 hadoop hadoop 230 May 12 00:06 upgrade-0.6.0-to-0.7.0.mysql.sql
-rw-rw-r-- 1 hadoop hadoop 201 May 12 00:06 upgrade-0.7.0-to-0.8.0.mysql.sql
-rw-rw-r-- 1 hadoop hadoop 137 May 12 00:06 upgrade-0.8.0-to-0.9.0.mysql.sql
-rw-rw-r-- 1 hadoop hadoop 235 May 12 00:06 upgrade-0.9.0-to-0.10.0.mysql.sql
执行脚本:
mysql -uhive -phive hive <upgrade-0.7.0-to-0.8.0.mysql.sql
此时数据库的结构只适应0.8系列的,可以选择做个备份:
mysqldump -uroot -phive hive > schem_hive-0.8.0.sql
下面依次执行:
mysql -uhive -phive hive <upgrade-0.8.0-to-0.9.0.mysql.sql
mysql -uhive -phive hive <upgrade-0.9.0-to-0.10.0.mysql.sql
其中0.10.0 和 0.11.0元数据库的结构一样。
每个脚本执行后 都可以做个相应schem的备份。
这一步骤是非常重要的 要是执行失败,会出现
Failed with exception null
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
等异常,导致之前版本已有的数据无法正常操作。
注意: 执行上述脚本的时候 如出现错误,必须需要手工去执行,我升级的时候 就是因为忽略的错误,导致以前的数据无法操作,也会报上面同样的错误!!!
然后查看sql脚本 手工一步一步的执行procedure和sql之后 ,系统就正常了。
5.拷贝 mysql connector jar包到 ${HIVE_HOME}/lib 目录,也可以直接从之前版本的jar直接拷贝过来。
到此,hive就完成升级了。
6.开启hiveserver
nohub ${HIVE_HOME}/bin/hive --service hiveserver -p 10000 &
原文地址: http://blog.csdn.net/lxpbs8851/article/details/11064767
转载请注明原文地址,违法必究