今天在我们的集群上升级了一下hive(从0.7.1升级到0.9.0),可谓坎坷不平啊,主要是忽略了一点hive升级后,需要对数据结构同步升级,具体如下:
1:需要有对应的hadoop版本(hive0.9.0对应hadoop1.x)。
2:升级后,需执行hive/scripts/metastore/upgrade/目录下对应的脚本(mysql如:mysql/upgrade-0.7.0-to-0.8.0.mysql.sql)。
3:注意导入相应的驱动放入lib目录(如:mysql-connector-java-5.1.11-bin.jar)。
注:第二点尤为重要,否则会出现"ERROR exec.Task (SessionState.java:printError(400)) - Failed with exception null"或" ERROR ql.Driver (SessionState.java:printError(400)) - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask"等异常,导致已有的数据无法正常操作。