新集群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 !