0

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

失败:语义异常 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(Unknown Source) 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 在 org.apache.derby.impl.jdbc.Util.seeNextException (未知来源)在 org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(未知来源)在 org.apache.derby.impl.jdbc。org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:6646) 的 metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:6719) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 的 sun.reflect。 NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util .RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 原因:ERROR XJ041: Failed to create database 'metastore_db',详见下一个异常. 在 org.apache.derby.impl.jdbc.SQLExceptionFactory 的 org.apache.derby.iapi.error.StandardException.newException(未知来源)。wrapArgsForTransportAcrossDRDA(Unknown Source) ... 61 更多原因:错误 XBM0H:无法创建目录 /metastore_db。在 org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 在 org.apache.derby.iapi.error.StandardException.newException(Unknown Source) 在 org.apache.derby.impl.services.monitor.StorageFactoryService $10.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source) at org.apache.derby.impl.services。 monitor.BaseMonitor.bootService(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) at org.apache.derby。

... 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(Unknown Source) 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) 在 org.apache.derby.impl.jdbc.Util.seeNextException (未知来源)在 org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(未知来源)在 org.apache.derby.impl.jdbc.EmbedConnection。(未知来源)在 org.apache.derby.jdbc。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) Caused by: ERROR XJ041: Failed to create database 'metastore_db',详见下一个异常。在 org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 61 更多原因:错误 XBM0H: Directory /metastore_db无法创建。

... 58 更多

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

4

1 回答 1

2

原因 描述导致问题的原因。在这种情况下,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 后,您可以看到服务启动失败的原因是由于内存不足 (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
于 2019-01-15T07:08:24.983 回答