初始化hive时org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version

org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version  +  java.sql.SQLException : The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. 

具体错误如下:

初始化hive时org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version

下面的解释应该改是mysql时区的问题,新一点的mysql经常会有这种问题。一般都是说java.sql.SQLException : The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.   搜上面这个异常一般可以找到两种解决方法,一个是更改数据库的时区,但是一般重启后就又要改了,另一种方法就是在代码中设定时区。

 

解决方法:

hive配置文件hive-site.xml中ConnectionURL是这样写的:

    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.1.134:3306/hive2</value>

没有加时区,要改成下面这样:

    <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://192.168.231.1:3306/hive2?serverTimezone=GMT</value>

然后再初始化就好了。