StarRocks 查询hudi外部表报错

【详述】StarRocks 查询s3 hudi外部表,,show table能看到表,但是select提示unknown table?

【StarRocks版本】2.5.6

【附件】
建表语句

fe 关键日志:
Caused by: org.apache.hadoop.fs.s3a.RemoteFileChangedException: open `s3a://hudi/data/bigdata/nginx/jinhua/nginxlog-pstatpvod-a-test/.hoodie/hoodie.properties’: Change reported by S3 during open at position 0. ETag bf4418a8c78bb89835c02dd3b097e792 was unavailable

REFRESH EXTERNAL TABLE <table_name>

手动执行下refresh,然后再次查询能查到么
另外确认下表是在 hudi的 tmp数据库下么,表名是对的么

1、表肯定是存在的

2、REFRESH EXTERNAL TABLE 也会报错unknown table


3、hive 外表是能查到数据的

发一下 be.out

be.INFO (268.5 KB) be.INFO.log.2023102010 (946.0 KB) be.out (4.1 MB) be.WARNING (892 字节) be.WARNING.log.2023102010 (1.3 KB)

看 be.out 中集群几天就会重启一次,这些都是人为重启的么

今天执行查 hudi 外表 sql 连接的 fe 的 fe.log 也发一下,fe.log 需包含 报 unknown table 前后的日志

崩溃原因是大查询导致的OOM和这个事情无关

fe.log (20.5 MB) fe.warn.log (654.1 KB)

能确认下s3a://hudi/data/bigdata/hudi/sanma/jinhua/sanmalog-channel-b-test2/.hoodie/hoodie.properties的最后修改时间以及etag吗?看下是不是现在不是fc6338e2de10235a2c71e1538b42076e了?

#Properties saved on 2023-10-19T07:56:13.113Z
#Thu Oct 19 15:56:13 CST 2023
hoodie.table.precombine.field=ts
hoodie.datasource.write.drop.partition.columns=false
hoodie.table.partition.fields=dt
hoodie.table.type=COPY_ON_WRITE
hoodie.archivelog.folder=archived
hoodie.table.cdc.enabled=false
hoodie.timeline.layout.version=1
hoodie.table.version=5
hoodie.table.recordkey.fields=ts
hoodie.datasource.write.partitionpath.urlencode=false
hoodie.table.name=ods_sanmalog_channel_b
hoodie.table.keygenerator.class=org.apache.hudi.keygen.SimpleAvroKeyGenerator
hoodie.datasource.write.hive_style_partitioning=true
hoodie.table.create.schema={“type”:“record”,“name”:“ods_sanmalog_channel_b_record”,“namespace”:“hoodie.ods_sanmalog_channel_b”,“fields”:[{“name”:“host”,“type”:[“null”,“string”],“default”:null},{“name”:“event”,“type”:[“null”,“string”],“default”:null},{“name”:“category”,“type”:[“null”,“string”],“default”:null},{“name”:“date”,“type”:[“null”,“string”],“default”:null},{“name”:“time”,“type”:[“null”,“string”],“default”:null},{“name”:“time_zone”,“type”:[“null”,“string”],“default”:null},{“name”:“s_ip”,“type”:[“null”,“string”],“default”:null},{“name”:“pid”,“type”:[“null”,“string”],“default”:null},{“name”:“vhost”,“type”:[“null”,“string”],“default”:null},{“name”:“app”,“type”:[“null”,“string”],“default”:null},{“name”:“app_inst”,“type”:[“null”,“string”],“default”:null},{“name”:“duration”,“type”:[“null”,“long”],“default”:null},{“name”:“status”,“type”:[“null”,“int”],“default”:null},{“name”:“c_ip”,“type”:[“null”,“string”],“default”:null},{“name”:“protocol”,“type”:[“null”,“string”],“default”:null},{“name”:“uri”,“type”:[“null”,“string”],“default”:null},{“name”:“uri_stem”,“type”:[“null”,“string”],“default”:null},{“name”:“uri_query”,“type”:[“null”,“string”],“default”:null},{“name”:“referer”,“type”:[“null”,“string”],“default”:null},{“name”:“user_agent”,“type”:[“null”,“string”],“default”:null},{“name”:“client_id”,“type”:[“null”,“string”],“default”:null},{“name”:“bytes_received”,“type”:[“null”,“long”],“default”:null},{“name”:“bytes_send”,“type”:[“null”,“long”],“default”:null},{“name”:“file_size”,“type”:[“null”,“string”],“default”:null},{“name”:“request_info”,“type”:[“null”,“string”],“default”:null},{“name”:“cli_name”,“type”:[“null”,“string”],“default”:null},{“name”:“x_comment”,“type”:[“null”,“string”],“default”:null},{“name”:“x_result”,“type”:[“null”,“string”],“default”:null},{“name”:“tmp1”,“type”:[“null”,“string”],“default”:null},{“name”:“tmp2”,“type”:[“null”,“string”],“default”:null},{“name”:“ext”,“type”:[“null”,“string”],“default”:null},{“name”:“ts”,“type”:[“null”,“string”],“default”:null},{“name”:“dt”,“type”:[“null”,“string”],“default”:null}]}
hoodie.table.checksum=496443571

看文件的最后修改时间和咱们发帖时间,有可能是当时查询期间properties文件更新导致的。咱们现在重启下FE后能访问吗?


还是一样的问题

我这边hudi是单并发写入,按理说是不会修改properties文件的,starrocks端会进行相关更改吗?

不会的,StarRocks对湖上数据都是只读操作,不会修改咱们原有的文件内容的。

咱们确认下这个文件是不是还在频繁更新,大概多久会更新一次呢?

是的 写任务还在继续写 每5min会进行一次sink

你好。我们也遇见了这个问题,请问这个问题解决了吗?