【详述】导出某个数据库的单个表报错 fail msg: Broker storage service error, errors while close file output stream, cause by: Output Stream closed
【StarRocks版本】2.0.0
【集群规模】1fe+1be
【机器信息】8C/64G/千兆
【附件】
JobId: 95406
QueryId: 766ae507-8b43-11ed-8a00-3e48b37b39c7
State: CANCELLED
Progress: 100%
TaskInfo: {“partitions”:[""],“column separator”:"\t",“columns”:[""],“tablet num”:8,“broker”:“broker_name”,“coord num”:8,“db”:“default_cluster:euler_uat”,“tbl”:“t_task_valid”,“row delimiter”:"\n",“mem limit”:17179869184}
Path: s3a://zheshan/20221230/
CreateTime: 2023-01-03 16:48:58
StartTime: 2023-01-03 16:49:01
FinishTime: 2023-01-04 09:25:47
Timeout: 72000
ErrorMsg: type:RUN_FAIL; msg:export job fail. query id: 9cb4a00c-9eef-4887-95cb-2abd2155f85c, fail msg: Broker storage service error, errors while close file output stream, cause by: Output Stream closed
4 rows in set (0.00 sec)
数据量在 几十GB这样
数据条数35亿左右
导出到华为云obs
目前不支持export到华为云,目前支持 HDFS、阿里云 OSS、AWS S3、或其他兼容 S3 协议的对象存储服务。
其他数据没那么大的表是正常导出导入的 用的s3方式的配置写的
主要是想知道一下 什么原因出现 fail msg: Broker storage service error, errors while close file output stream, cause by: Output Stream closed 这个报错的
请提供下执行任务报错时间节点的 fe.log和apache_hdfs_broker.log日志
一直上传到晚上九点多 然后报错了
这是apache_hdfs_broker.log
日志已经在上面发了
可以提供766ae507-8b43-11ed-8a00-3e48b37b39c7这个导出以及它子任务的所有相关的FE日志嘛,这边只能看到最后的报错日志?
你好,你遇到的这个问题解决了吗?
如果解决了,怎么解决的?
目前我是backup到s3,也遇到了类似的问题。社区翻遍了也没找到可用的方案
目前的结论是,FE在发送一个close请求给broker之后,broker在close之前会进行flush操作,如果这个操作的时间大于10s的话(文件比较大,比如100MB,传输到S3或其他对象存储不一定能够及时完成),FE会重新发一个close请求,由于之前已经close过了,因此这次close会报错。
1赞
修复此问题的办法是
- 升级到2.5,使用不带broker的备份恢复以及导出。
- 还有一种是,https://github.com/StarRocks/starrocks/pull/17747/files将config::broker_write_timeout_seconds调大,这一个目前是合入到main分支,在3.0.0发布
这个没有backport回2.5吗