Hadoop 配置单元0.14更新和删除查询配置错误

Hadoop 配置单元0.14更新和删除查询配置错误,hadoop,hive,Hadoop,Hive,在apachehive 0.14中,我们可以通过支持ACID配置来更新和删除查询: hive.configuration: hive.support.concurrency – true hive.enforce.bucketing – true hive.exec.dynamic.partition.mode – nonstrict hive.txn.manager – org.apache.hadoop.hive.ql.lockmgr.DbTxnManager hive.compactor.

在apache
hive 0.14
中,我们可以通过支持
ACID
配置来更新和删除查询:

hive.configuration:
hive.support.concurrency – true
hive.enforce.bucketing – true
hive.exec.dynamic.partition.mode – nonstrict
hive.txn.manager – org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
hive.compactor.initiator.on – true (for exactly one instance of the Thrift metastore service)
hive.compactor.worker.threads-1
但是,当我使用hiveQL
show databases
时,会出现以下错误:

as@ubuntu:~$ hive
Logging initialized using configuration in jar:file:/home/as/hive/lib/hive-common-0.14.0.jar!/hive-log4j.properties<br>
SLF4J: Class path contains multiple SLF4J bindings.<br>
SLF4J: Found binding in [jar:file:/home/as/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]<br>
SLF4J: Found binding in [jar:file:/home/as/hive/lib/hive-jdbc-0.14.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]<br>
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.<br>
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]<br>
hive> show databases;<br>
FAILED: LockException [Error 10280]: Error communicating with the metastore<br>
hive> exit;
<br>
as@ubuntu:~$hive
使用jar:file:/home/as/hive/lib/hive-common-0.14.0.jar中的配置初始化日志记录/hive-log4j.属性
SLF4J:类路径包含多个SLF4J绑定。
SLF4J:在[jar:file:/home/as/hadoop/share/hadoop/common/lib/SLF4J-log4j12-1.7.5.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定
SLF4J:在[jar:file:/home/as/hive/lib/hive-jdbc-0.14.0-standalone.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定
SLF4J:参见http://www.slf4j.org/codes.html#multiple_bindings 请解释。
SLF4J:实际绑定的类型为[org.SLF4J.impl.Log4jLoggerFactory]
蜂巢>显示数据库
失败:LockException[错误10280]:与元存储通信时出错
蜂巢>退出;

请帮助我修复错误。

很可能是数据库服务器或配置单元元存储未运行。试试这个

mysqld    # or pg_ctl start -l logfile   or whatever your db start command
然后确保元存储正在运行

nohup hive --service metastore &
更新操作“没有足够的自由空间”

看看

/var/lib/mysql  

看看它是否被100%利用。参考:

让我们将其添加到hive-site.xml中:


蜂巢试验
真的

线程所有者是正确的。背景 hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager

导致到metastore的连接错误(在我的示例中,MetasStore是SAP ASE,上面有多个数据库)

返回并将hive.txn.manager设置为默认值 hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager

再次回收了metastore和hive服务器,一切正常


听起来并发不起作用,或者需要做一些额外的事情

我认为这个配置有问题:hive.txn.manager–org.apache.hadoop.hive.ql.lockmgr.DbTxnManager如果我删除这一行,我就可以启动并使用hive。所以我不认为hive metastore不是我们的问题,你可以给我更多提示吗?我使用了命令:mysqld
;hive--service metastore&->>>>和我得到错误:没有足够的可用空间(我有5.7GB的可用空间)任何其他帮助?请更新答案。我在这里帮了点忙,不是吗?也许你可以考虑向上投票-即使还没有接受吗?我的系统还不够,这是一个系统通知而不是MySQL通知。当我使用命令:HIVE-Service AutoReal> >一个警告系统通知,没有足够的空间,我不明白这个命令在我的计算机上创建的元数据需要5.7GB。请在两行上分开mysqld命令和hive--service命令。我们需要确定是哪个命令导致了问题。该错误与尝试将5.7GB用于元数据无关。这可能是由于某个特定的装载点(不是/)的空间太小。但是我们需要DbTxnManager对hive使用ACID支持,对吗?(hive ACID指南说我们需要它)