Hive的升级(0.8.0到0.11.0)
hive-0.11.0出来后,得知有将row_number进行封装,对于我这等不懂java的人士来说,是莫大的幸福啊!毫不犹豫的将0.8.0抛弃了!
下面是具体升级步骤:
1,关闭当前hive正在执行的进程,service hive-server以及相应的客户端。
2,不管做哪方面的升级,首先肯定是将当前的进行备份
备份 hive-0.8.0
mv hive-0.8.0 hive-0.8.0_bak
备份元数据库(mysql的)
mysqldump -h ip -P port -uusername -ppassword DB >hive-0.8.0.sql
3,将下载好的hive-0.11.0.tar解压到相应的目录(/opt这个是我的目录)
4,修改环境变量$HIVE_HOME
5,进入/opt/hive-0.11.0/scripts/metastore/upgrade/ 可以看到这个版本多了Oracle与postgres的支持,我们果断选择自已用到的mysql
6,进入mysql后,可以看到以下几个文件
upgrade-0.5.0-to-0.6.0.mysql.sql
upgrade-0.6.0-to-0.7.0.mysql.sql
upgrade-0.7.0-to-0.8.0.mysql.sql
upgrade-0.8.0-to-0.9.0.mysql.sql
upgrade-0.9.0-to-0.10.0.mysql.sql
因为我们已经是0.8.0的版本了,所以只需执行最后两个文件就ok
mysql -h ip -P port -uusername -ppassword DB < upgrade-0.8.0-to-0.9.0.mysql.sql
如果有报错就自己再手动执行一次,如果没有也建议执行后备份一下。
执行完后再执行upgrade-0.9.0-to-0.10.0.mysql.sql
备注:因为我执行的时候是没有报错,有朋友说如果这里没有操作好,很有可能会导致无法操作之前数据,所以慎重。
具体报错信息:
Failed with exception null
FAILED: Execution Error, return code 1 from org.apache.Hadoop.hive.ql.exec.DDLTask
7,将mysql的驱动拷贝到lib目录下。
8,将之前旧版本配置好的hive-site.xml,hive-env.xml与hive-log4j.properties放回现在版本的conf下。
9,升级完成。可以进行hive操作了。记得将原来停掉的server再重新开启
Hive 的详细介绍:请点这里
Hive 的下载地址:请点这里
相关阅读: