【问题标题】:FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeExcept失败:语义异常 org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeExcept
【发布时间】:2018-05-03 08:20:21
【问题描述】:

我正在使用 cdh 5.13.0 环境 每当我尝试执行 hive cmd 时,它都会显示错误

失败:SemanticException org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

我检查了 hive-metastore.log,它显示了

2018-05-02 06:15:53,225 错误 [main]:Datastore.Schema (Log4JLogger.java:error(125)) - 初始化数据库失败。 无法打开到给定数据库的测试连接。 JDBC url = jdbc:derby:;databaseName=metastore_db;create=true, 用户名 = APP。终止连接池(如果您希望在应用程序之后启动数据库,请将 lazyInit 设置为 true)。原始例外: ------ java.sql.SQLException: 无法创建数据库 'metastore_db',请参阅下一个异常以了解详细信息。 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知来源) 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知来源) 在 org.apache.derby.impl.jdbc.Util.seeNextException(未知来源) 在 org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(未知来源) 在 org.apache.derby.impl.jdbc.EmbedConnection.(未知来源) 在 org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(未知来源) 在 org.apache.derby.jdbc.InternalDriver.connect(未知来源) 在 org.apache.derby.jdbc.InternalDriver.connect(未知来源) 在 org.apache.derby.jdbc.AutoloadedDriver.connect(未知来源) 在 java.sql.DriverManager.getConnection(DriverManager.java:571) 在 java.sql.DriverManager.getConnection(DriverManager.java:187) 在 com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:361) 在 com.jolbox.bonecp.BoneCP.(BoneCP.java:416) 在 com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120) 在 org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:501) 在 org.datanucleus.store.rdbms.RDBMSStoreManager.(RDBMSStoreManager.java:298) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:631) 在 org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:301) 在 org.datanucleus.NucleusContext.createStoreManagerForProperties(NucleusContext.java:1187) 在 org.datanucleus.NucleusContext.initialise(NucleusContext.java:356) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:775) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:333) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:202) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 javax.jdo.JDOHelper$16.run(JDOHelper.java:1965) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.jdo.JDOHelper.invoke(JDOHelper.java:1960) 在 javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166) 在 javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808) 在 javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701) 在 org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:418) 在 org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectStore.java:447) 在 org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:342) 在 org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore.java:298) 在 org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73) 在 org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133) 在 org.apache.hadoop.hive.metastore.RawStoreProxy.(RawStoreProxy.java:60) 在 org.apache.hadoop.hive.metastore.RawStoreProxy.getProxy(RawStoreProxy.java:69) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.newRawStore(HiveMetaStore.java:682) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:660) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:709) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:508) 在 org.apache.hadoop.hive.metastore.RetryingHMSHandler.(RetryingHMSHandler.java:78) 在 org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:84) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6474) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6469) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:6719) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:6646) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:136) 原因:ERROR XJ041: Failed to create database 'metastore_db',详见下一个异常。 在 org.apache.derby.iapi.error.StandardException.newException(未知来源) 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(未知来源) ... 61 更多 原因:错误 XBM0H:无法创建目录 /metastore_db。 在 org.apache.derby.iapi.error.StandardException.newException(未知来源) 在 org.apache.derby.iapi.error.StandardException.newException(未知来源) 在 org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(未知来源) 在 org.apache.derby.impl.services.monitor.BaseMonitor.bootService(未知来源) 在 org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(未知来源) 在 org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(未知来源) 在 org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source)

... 58 更多

org.datanucleus.exceptions.NucleusDataStoreException:无法打开到给定数据库的测试连接。 JDBC url = jdbc:derby:;databaseName=metastore_db;create=true, 用户名 = APP。终止连接池(如果您希望在应用程序之后启动数据库,请将 lazyInit 设置为 true)。原始例外: ------ java.sql.SQLException: 无法创建数据库 'metastore_db',请参阅下一个异常以了解详细信息。 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知来源) 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知来源) 在 org.apache.derby.impl.jdbc.Util.seeNextException(未知来源) 在 org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(未知来源) 在 org.apache.derby.impl.jdbc.EmbedConnection.(未知来源) 在 org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(未知来源) 在 org.apache.derby.jdbc.InternalDriver.connect(未知来源) 在 org.apache.derby.jdbc.InternalDriver.connect(未知来源) 在 org.apache.derby.jdbc.AutoloadedDriver.connect(未知来源) 在 java.sql.DriverManager.getConnection(DriverManager.java:571) 在 java.sql.DriverManager.getConnection(DriverManager.java:187) 在 com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:361) 在 com.jolbox.bonecp.BoneCP.(BoneCP.java:416) 在 com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120) 在 org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:501) 在 org.datanucleus.store.rdbms.RDBMSStoreManager.(RDBMSStoreManager.java:298) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:631) 在 org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:301) 在 org.datanucleus.NucleusContext.createStoreManagerForProperties(NucleusContext.java:1187) 在 org.datanucleus.NucleusContext.initialise(NucleusContext.java:356) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:775) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:333) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:202) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 javax.jdo.JDOHelper$16.run(JDOHelper.java:1965) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.jdo.JDOHelper.invoke(JDOHelper.java:1960) 在 javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166) 在 javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808) 在 javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701) 在 org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:418) 在 org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectStore.java:447) 在 org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:342) 在 org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore.java:298) 在 org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73) 在 org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133) 在 org.apache.hadoop.hive.metastore.RawStoreProxy.(RawStoreProxy.java:60) 在 org.apache.hadoop.hive.metastore.RawStoreProxy.getProxy(RawStoreProxy.java:69) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.newRawStore(HiveMetaStore.java:682) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:660) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:709) 在 org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:508) 在 org.apache.hadoop.hive.metastore.RetryingHMSHandler.(RetryingHMSHandler.java:78) 在 org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:84) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6474) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6469) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:6719) 在 org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:6646) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:136) 原因:ERROR XJ041: Failed to create database 'metastore_db',详见下一个异常。 在 org.apache.derby.iapi.error.StandardException.newException(未知来源) 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(未知来源) ... 61 更多 原因:错误 XBM0H:无法创建目录 /metastore_db。 在 org.apache.derby.iapi.error.StandardException.newException(未知来源) 在 org.apache.derby.iapi.error.StandardException.newException(未知来源) 在 org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(未知来源) 在 org.apache.derby.impl.services.monitor.BaseMonitor.bootService(未知来源) 在 org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(未知来源) 在 org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(未知来源) 在 org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source)

... 58 更多

我不知道该怎么办。 hive-metastore 服务器的状态为 down 且未关闭

【问题讨论】:

  • 有人来帮忙吗?

标签: hive cloudera-cdh hive-metastore


【解决方案1】:

原因描述导致问题的原因。 在这种情况下,Out Of Memory (OOM) 错误是由于服务器没有足够的内存来启动 HiveMetaStore 服务。

RCA

客户端在hive-site.xml中配置了HiveMetaStore服务,但是服务没有启动。

例如:

/etc/gphd/hive-0.11.0_gphd_2_1_0_0/conf/hive-site.xml

<property>
<name>hive.metastore.uris
<value>thrift://hdw1.viadea.com:9083
</property>

但是在 hdw1 上:

-bash-4.1$ service hive-metastore status
hive-metastore dead but pid file exists

观察hive-metastore.log,可以看到服务启动失败的原因是Out of Memory (OOM)错误,如下例所示:

14/04/07 16:43:13 WARN conf.HiveConf:已弃用:配置属性 hive.metastore.local 不再有效。如果要连接到远程元存储,请确保为 hive.metastore.uris 提供有效值。 警告:不推荐使用 org.apache.hadoop.metrics.jvm.EventCounter。请在所有 log4j.properties 文件中使用 org.apache.hadoop.log.metrics.EventCounter。 库初始化失败 - 无法分配文件描述符表 - 内存不足

程序 要解决此问题,请执行以下步骤: 1.了解HiveMetaStore服务为什么没有启动。在这种情况下,请增加服务器的物理内存。 2.然后使用root用户手动启动HiveMetaStore服务。

service hive-metastore start

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-03-04
  • 2022-09-29
  • 2013-12-01
  • 2016-09-20
  • 1970-01-01
  • 2019-04-30
  • 2019-04-06
  • 2015-12-27
相关资源
最近更新 更多