Mysql 配置单元元存储服务器(CDH)启动失败

Mysql 配置单元元存储服务器(CDH)启动失败,mysql,hive,cloudera-manager,Mysql,Hive,Cloudera Manager,最近我安装了CDH hadoop(版本5.14.2),但无法启动HIVE Metastore服务器 它有一个HiveServer2和一个HIVE Metastore服务器 当我启动它时,我设置了datanucleus.autoCreateSchematrue,让hive自己创建表 然后,HiveServer2启动良好,但HIVE Metastore服务器失败。下面是日志 ERROR Datastore [main]: Error thrown executing CREATE

最近我安装了CDH hadoop(版本5.14.2),但无法启动HIVE Metastore服务器

它有一个
HiveServer2
和一个
HIVE Metastore服务器

当我启动它时,我设置了
datanucleus.autoCreateSchema
true
,让hive自己创建表

然后,HiveServer2启动良好,但HIVE Metastore服务器失败。下面是日志

    ERROR   Datastore   
[main]: Error thrown executing CREATE TABLE `SERDE_PARAMS`
(
    `SERDE_ID` BIGINT NOT NULL,
    `PARAM_KEY` VARCHAR(256) BINARY NOT NULL,
    `PARAM_VALUE` VARCHAR(32672) BINARY NULL,
    CONSTRAINT `SERDE_PARAMS_PK` PRIMARY KEY (`SERDE_ID`,`PARAM_KEY`)
) ENGINE=INNODB : Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
    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)
    at com.mysql.jdbc.Util.getInstance(Util.java:408)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
    ......

    ERROR   Schema  
[main]: An exception was thrown while adding/validating class(es) : Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
    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)
    ......
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

    WARN    Query   
[main]: Query for candidates of org.apache.hadoop.hive.metastore.model.MPartitionColumnStatistics and subclasses resulted in no possible candidates
An exception was thrown while adding/validating class(es) : Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    ......

org.datanucleus.exceptions.NucleusDataStoreException: An exception was thrown while adding/validating class(es) : Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    ......
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    ......
    ... 36 more
Nested Throwables StackTrace:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
    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)
    ......
我不知道如何解决
列长度对于列'PARAM_VALUE'太大的问题
我应该在mysql中添加一些设置吗(我使用yum安装5.6.40版)


提前感谢。

MySQL的最大行大小限制为65535(减去存储开销)字节。如果在字符集中(例如:UTF-8),一个字符最多占用3个字节,则varchar列的最大大小可以是65535/3=~21845,假设它是表中唯一的列。 这一点在

将字符集更改为最大长度为1的latin1可以解决此问题,因为在latin1中,列大小的最大值约为65535

连接到Hive Metastore DB(MYSQL)并运行 ALTER数据库字符集1


MySQL的最大行大小限制为65535字节(减去存储开销)。如果在字符集中(例如:UTF-8),一个字符最多占用3个字节,则varchar列的最大大小可以是65535/3=~21845,假设它是表中唯一的列。 这一点在

将字符集更改为最大长度为1的latin1可以解决此问题,因为在latin1中,列大小的最大值约为65535

连接到Hive Metastore DB(MYSQL)并运行 ALTER数据库字符集1


你能分享mysql数据库的.cnf文件吗?你能分享mysql数据库的.cnf文件吗?谢谢你的回答,你已经收到了核心信息。当我再次遇到这个问题时,我会检查你的答案,谢谢你的回答,你已经得到了核心信息。当我再次遇到这个问题时,我会检查你的答案,