新集群CDH版本,剛剛搭建起來,5個節點起了1個hive服務,另外5個節點又單獨起了1個hive服務,一共2個hive服務。老哥對其中的一個hive進行了數據遷移((元數據庫全部遷移),對hive數據庫進行了替換,就這樣,遷移完成沒有問題。但是配置yarn參數時,需要對yarn進行重啟,重啟中涉及對hive的重啟,完蛋,hive metastore 無法啟動,報下面的錯誤:(ps:沒有導過數據的那個hive就沒有問題)
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'A0.SCHEMA_VERSION_V2' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
這個報錯是說hive數據庫里某個表缺一個字段???、
幸虧起了2個hive數據庫啊,要不然第一個庫的所有表都改過了,到哪里去哭?
比較了2個hive數據的VERSION表:
報錯的mysql里hive庫的VERSION表
mysql> select * from VERSION -> ; +--------+----------------+-----------------------------------+ | VER_ID | SCHEMA_VERSION | VERSION_COMMENT | +--------+----------------+-----------------------------------+ | 1 | 2.0.0 | Set by MetaStore dip@198.3.100.61 | +--------+----------------+-----------------------------------+
全新的mysql里hive庫的VERSION表:
mysql> select * from VERSION; +--------+----------------+----------------------------+-------------------+ | VER_ID | SCHEMA_VERSION | VERSION_COMMENT | SCHEMA_VERSION_V2 | +--------+----------------+----------------------------+-------------------+ | 1 | 1.1.0 | Hive release version 1.1.0 | 1.1.0-cdh5.12.0 | +--------+----------------+----------------------------+-------------------+
比較一下,確實發現少了一個字段
在已有數據的hive元數據表VERSION中添加字段,並 補充 數據:
alter table VERSION add SCHEMA_VERSION_V2 varchar(255) not Null;
update VERSION set SCHEMA_VERSION_V2 = 1.1.0-cdh5.12.0 where VER_ID=1;
重新啟動,everything is ok !