2

我使用 Hive 和 MySQL 作为元存储,但不知何故无法创建数据库。安装 Hive 后,我能够创建一个数据库,但不能再创建了。我收到以下错误,但有人知道这个问题的原因是什么吗?

hive> create database testingyou;
FAILED: Error in metadata: MetaException(message:javax.jdo.JDOUserException: 
Could not create "increment"/"table" value-generation container `SEQUENCE_TABLE` 
since autoCreate flags do not allow it. 

NestedThrowables:
org.datanucleus.exceptions.NucleusUserException: Could not create 
"increment"/"table" value-generation container `SEQUENCE_TABLE` 
since autoCreate flags do not allow it. )
FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask
4

3 回答 3

1

我遇到了同样的问题,发现我忘了取消注释一行。完整步骤:

  1. 找到 mysql 配置文件my.cnf ( /etc/my.cnf )
  2. 搜索binlog_formt,你可能会发现它被注释了#
  3. 打开它并再次尝试您的蜂巢
于 2014-04-16T10:06:04.050 回答
0

检查你的mysql设置。

binlog_format

mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | MIXED |
+---------------+-------+
1 row in set (0.00 sec)

binlog_format=STATEMENT 是同样的错误

于 2014-03-12T04:58:20.403 回答
0

一个可能的原因是 Hive 中的一个已知错误,其中 Data Nucleus 忘记转义数据库名称,例如“db-name”或 [db-name]。当数据库目录名称像我的示例那样带有破折号时,HiveServer2 将无法连接到它,因为在发出用于启动 hive 的关键命令时出现 SQL 语法错误:

Hive Metastore 日志显示

2016-01-16 02:14:10,228 DEBUG [main]: Datastore.Native (Log4JLogger.java:debug(58)) - SELECT NEXT_VAL FROM db-name.dbo.SEQUENCE_TABLE WHERE SEQUENCE_NAME=<'org.apache.hadoop.hive.metastore.model.MDatabase'>

2016-01-16 02:14:10,233 INFO  [main]: DataNucleus.ValueGeneration (Log4JLogger.java:info(77)) - Error encountered allocating block of IDs : Couldnt obtain a new sequence (unique id) : Incorrect syntax near '-'.

2016-01-16 02:14:10,233 INFO  [main]: DataNucleus.ValueGeneration (Log4JLogger.java:info(77)) - Error encountered allocating block of IDs : Couldnt obtain a new sequence (unique id) : Incorrect syntax near '-'.

该问题正在https://issues.apache.org/jira/browse/HIVE-6113中进行跟踪。修复将作为 Hive 2.0 的一部分提供,目前还没有完全解决。

在此之前,请确保在数据库目录名称中避免使用破折号或连字符。

于 2016-02-24T21:26:21.180 回答