Hive presto错误“;蜂巢桌'';腐败。在bucket目录中找到分区“的子目录”;?

Hive presto错误“;蜂巢桌'';腐败。在bucket目录中找到分区“的子目录”;?,hive,presto,flume,flume-ng,Hive,Presto,Flume,Flume Ng,我已经通过根据设置“hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager”禁用了配置单元事务 但当我通过presto查询时,它仍然显示异常消息,如“配置单元表“”已损坏。在分区的bucket目录中找到子目录” 我发现,如果我手动插入表,presto对此表的查询返回ok。但如果该表是由flume插入的,presto对此表的查询将失败 我的手动sql如下所示 INSERT INTO test_flume6 PARTITI

我已经通过根据设置“hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager”禁用了配置单元事务

但当我通过presto查询时,它仍然显示异常消息,如“配置单元表“”已损坏。在分区的bucket目录中找到子目录”

我发现,如果我手动插入表,presto对此表的查询返回ok。但如果该表是由flume插入的,presto对此表的查询将失败

我的手动sql如下所示

INSERT INTO test_flume6 PARTITION (area = 'x', business='x', 
minuteTime='y') VALUES (201,'x','x');
# Hive Sink
agent.sinks.hive_sink.type = hive
agent.sinks.hive_sink.hive.metastore = thrift://hive:9083
agent.sinks.hive_sink.hive.database = estate
agent.sinks.hive_sink.hive.table = test_flume6
#agent.sinks.hive_sink.hive.txnsPerBatchAsk = 2
agent.sinks.hive_sink.hive.partition = asia,stock,%y-%m-%d-%H-%M
#agent.sinks.hive_sink.batchSize = 10
agent.sinks.hive_sink.serializer = DELIMITED
agent.sinks.hive_sink.serializer.delimiter = ,
agent.sinks.hive_sink.serializer.fieldnames = id,username,email
create table test_flume6(
`id` string,
username string,
email string
)
PARTITIONED BY(area string, business string, minuteTime string)
clustered by(id)
into 5 buckets
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\u0001'
stored as orc
TBLPROPERTIES ('transactional'='false');
我的presto版本是,我的hive版本是hive-1.1.0-cdh5.9.0。 我的flume版本是flume-ng-1.6.0-cdh5.9.0

我的flume的HiveLink配置如下所示

INSERT INTO test_flume6 PARTITION (area = 'x', business='x', 
minuteTime='y') VALUES (201,'x','x');
# Hive Sink
agent.sinks.hive_sink.type = hive
agent.sinks.hive_sink.hive.metastore = thrift://hive:9083
agent.sinks.hive_sink.hive.database = estate
agent.sinks.hive_sink.hive.table = test_flume6
#agent.sinks.hive_sink.hive.txnsPerBatchAsk = 2
agent.sinks.hive_sink.hive.partition = asia,stock,%y-%m-%d-%H-%M
#agent.sinks.hive_sink.batchSize = 10
agent.sinks.hive_sink.serializer = DELIMITED
agent.sinks.hive_sink.serializer.delimiter = ,
agent.sinks.hive_sink.serializer.fieldnames = id,username,email
create table test_flume6(
`id` string,
username string,
email string
)
PARTITIONED BY(area string, business string, minuteTime string)
clustered by(id)
into 5 buckets
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\u0001'
stored as orc
TBLPROPERTIES ('transactional'='false');
我的配置单元表的创建sql如下所示

INSERT INTO test_flume6 PARTITION (area = 'x', business='x', 
minuteTime='y') VALUES (201,'x','x');
# Hive Sink
agent.sinks.hive_sink.type = hive
agent.sinks.hive_sink.hive.metastore = thrift://hive:9083
agent.sinks.hive_sink.hive.database = estate
agent.sinks.hive_sink.hive.table = test_flume6
#agent.sinks.hive_sink.hive.txnsPerBatchAsk = 2
agent.sinks.hive_sink.hive.partition = asia,stock,%y-%m-%d-%H-%M
#agent.sinks.hive_sink.batchSize = 10
agent.sinks.hive_sink.serializer = DELIMITED
agent.sinks.hive_sink.serializer.delimiter = ,
agent.sinks.hive_sink.serializer.fieldnames = id,username,email
create table test_flume6(
`id` string,
username string,
email string
)
PARTITIONED BY(area string, business string, minuteTime string)
clustered by(id)
into 5 buckets
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\u0001'
stored as orc
TBLPROPERTIES ('transactional'='false');

Presto 327()带来了许多关于配置单元带扣表(事务性或非事务性)处理的改进。使用Presto 327时,您是否也会遇到同样的错误?顺便说一句,故障排除并不是最适合这种情况。我建议您在上使用
#疑难解答