正在尝试启动连接到新mysql rds的hive metastore 3.1版本,出现此错误。当使用hive2.3.2时,它工作得很好(在一个单独的mysql-rds示例上)。有人知道这是什么原因吗?在启动hivemetastore进程之前,已经初始化了mysql:
echo“如果不存在metastore,则创建数据库;”>hive\u metastore.sql echo“使用metastore;”>>hive\u metastore.sql echo“source$hive\u home/scripts/metastore/upgrade/mysql/hive-schema-3.1.0.mysql.sql;”
hive_metastore.sql echo“如果不存在“hive”@“%”,则创建用户,由“$hive_pasw”;”标识“>>hive_metastore.sql echo“撤销所有特权,从'hive'@“%”授予选项”>>hive_metastore.sql echo“将metastore.*的所有权限授予'hive'@“%”;”>>hive_metastore.sql echo“如果不存在“ro_hive”@“%”,则创建由“$ro_hive_pasw”标识的用户”>>hive_metastore.sql echo“撤销所有特权,从'ro_hive'@“%”授予选项”>>hive\u metastore.sql echo“在客户端上授予选择、显示视图、进程、复制。到“ro_hive”@“%”;“>>hive\u metastore.sql echo“刷新权限;”>>hive\u metastore.sql echo“退出”>>hive\u metastore.sql
18/08/24 00:17:48 info metastore.objectstore:使用hive.metastore.cache.pinobjtypes=“table,storagedescriptor,serdeinfo,partition,database,type,fieldschema,order”设置metastore对象pin类18/08/24 00:17:48 info metastore.metastoredirectsql:使用直接sql,底层数据库是mysql 18/08/24 00:17:48 info metastore.objectstore:initialized objectstore 18/08/24 00:17:49 warn datanucleus.metadata:元数据的jdbc类型为null,但这是无效的。忽略18/08/24 00:17:53警告metastore.objectstore:获取数据库hive.default失败,返回nosuchobjectexception 18/08/24 00:17:53 warn metastore.hivemetastore:在出现错误后重试创建默认数据库:引发异常刷新对数据存储javax.jdo.jdodatastoreexception的更改:引发异常刷新对org.datanucleus.api.jdo.nucleusjdohelper.getjdoexceptionfornucleusexception(nucleusjdohelper。java:543)位于org.datanucleus.api.jdo.jdotransaction.commit(jdotransaction.com)。java:171)在org.apache.hadoop.hive.metastore.objectstore.committransaction(objectstore。java:765)在org.apache.hadoop.hive.metastore.objectstore.createdatabase(objectstore。java:953) 在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)在org.apache.hadoop.hive.metastore.rawstoreproxy.invoke(rawstoreproxy。java:97)com.sun.proxy.$proxy22.createdatabase(未知源代码)org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.createdefaultdb\u core(hivemetastore)。java:751)在org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.createdefaultdb(hivemetastore。java:769)在org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.init(hivemetastore。java:538)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)位于org.apache.hadoop.hive.metastore.retryinghmshandler.invokeinternal(retryinghmshandler。java:147)在org.apache.hadoop.hive.metastore.retryinghmshandler.invoke(retryinghmshandler。java:108)在org.apache.hadoop.hive.metastore.retryinghmshandler。java:80)在org.apache.hadoop.hive.metastore.retryinghmshandler.getproxy(retryinghmshandler。java:93)位于org.apache.hadoop.hive.metastore.hivemetastore.newretryinghmshandler(hivemetastore)。java:8661)位于org.apache.hadoop.hive.metastore.hivemetastore.newretryinghmshandler(hivemetastore)。java:8656)在org.apache.hadoop.hive.metastore.hivemetastore.startmetastore(hivemetastore)。java:8926)位于org.apache.hadoop.hive.metastore.hivemetastore.main(hivemetastore。java:8843)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)在org.apache.hadoop.util.runjar.run(runjar。java:221)在org.apache.hadoop.util.runjar.main(runjar。java:136)nestedthrowablesstacktrace:java.sql.batchupdateexception:字段中的未知列“catalog\u name”位于sun.reflect.nativeconstructoraccessorimpl.newinstance0(本机方法)的列表位于sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl)。java:62)在sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl。java:45)在java.lang.reflect.constructor.newinstance(constructor。java:423)在com.mysql.jdbc.util.handlenewinstance(util。java:425)在com.mysql.jdbc.util.getinstance(util。java:408)在com.mysql.jdbc.sqlerror.createbatchupdateexception(sqlerror。java:1163)在com.mysql.jdbc.preparedstatement.executebatchserially(preparedstatement。java:1778)在com.mysql.jdbc.preparedstatement.executebatchinternal(preparedstatement。java:1262) 在com.mysql.jdbc.statementimpl.executebatch(statementimpl。java:970)在com.zaxxer.hikari.pool.proxystatement.executebatch(proxystatement。java:125)在com.zaxxer.hikari.pool.hikariproxypreparedstatement.executebatch(hikariproxypreparedstatement.java)上org.datanucleus.store.rdbms.paramloggingpreparedstatement.executebatch(paramloggingpreparedstatement。java:366)位于org.datanucleus.store.rdbms.sqlcontroller.processconnectionstatement(sqlcontroller。java:676)位于org.datanucleus.store.rdbms.sqlcontroller.processstatementsforconnection(sqlcontroller。java:644)在org.datanucleus.store.rdbms.sqlcontroller$1.transactionflushed(sqlcontroller。java:731)位于org.datanucleus.store.connection.abstractmanagedconnection.transactionflushed(abstractmanagedconnection)。java:89)在org.datanucleus.store.connection.connectionmanagerimpl$2.transactionflushed(connectionmanagerimpl。java:450)在org.datanucleus.transactionimpl.flush(transactionimpl。java:210)在org.datanucleus.transactionimpl.commit(transactionimpl。java:274)位于org.datanucleus.api.jdo.jdotransaction.commit(jdotransaction.com)。java:107)在org.apache.hadoop.hive.metastore.objectstore.committransaction(objectstore。java:765)在org.apache.hadoop.hive.metastore.objectstore.createdatabase(objectstore。java:953)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)位于org.apache.hadoop.hive.metastore.rawstoreproxy.invoke(rawstoreproxy)。java:97)com.sun.proxy.$proxy22.createdatabase(未知源代码)org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.createdefaultdb\u core(hivemetastore)。java:751)在org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.createdefaultdb(hivemetastore)。java:769)位于org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.init(hivemetastore)。java:538)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)位于org.apache.hadoop.hive.metastore.retryinghmshandler.invokeinternal(retryinghmshandler。java:147)在org.apache.hadoop.hive.metastore.retryinghmshandler.invoke(retryinghmshandler。java:108)在org.apache.hadoop.hive.metastore.retryinghmshandler.(retryinghmshandler。java:80)在org.apache.hadoop.hive.metastore.retryinghmshandler.getproxy(retryinghmshandler。java:93)位于org.apache.hadoop.hive.metastore.hivemetastore.newretryinghmshandler(hivemetastore)。java:8661)在org.apache.hadoop.hive.metastore.hivemetastore.newretryinghmshandler(hivemetastore)。java:8656)在org.apache.hadoop.hive.metastore.hivemetastore.startmetastore(hivemetastore)。java:8926)位于org.apache.hadoop.hive.metastore.hivemetastore.main(hivemetastore。java:8843)位于sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)在org.apache.hadoop.util.runjar.run(runjar。java:221)在org.apache.hadoop.util.runjar.main(runjar。java:136)
1条答案
按热度按时间hmtdttj41#
https://issues.apache.org/jira/browse/hive-19740 在hive-site.xml上将hive.metastore.event.db.notification.api.auth设置为false之后。Hive可以正常启动和工作。