有两个问题需要请教以下: 环境是flink1.15.2 FileSink.forRowFormat()方法写数据到hdfs3.0.0。 1、flink写到hdfs的文件以.开头,当flink任务基于savepoint重启后, 重启前的以.开头的文件,在重启后并不能rename或者commit为正式文件,还是以.开头,.inprogress状态;2、flink任务在运行中,很多文件不可见,但是对应的hdfs目录du看大小已经是很大了。 请问这两个问题有同学遇到过吗?是什么原因?
1、重启后的文件名以.开头,不能rename或commit为正式文件的问题。这可能是因为,在Flink中,以.开头的文件名被视为隐藏文件,而FileSink在写文件时使用了以.开头的文件名,这导致了在重启后无法对这些文件进行rename或commit的操作。为了解决这个问题,您可以尝试使用其他文件名或文件命名方式,避免使用以.开头的文件名。另外,您也可以在Flink中自定义FileNamingFunction来生成文件名,以确保生成的文件名符合您的需求。
2、文件不可见但是du看大小已经很大的问题。这可能是因为,HDFS中的文件系统具有一定的缓存机制,可能会延迟一段时间才能看到最新的文件状态。另外,如果您的HDFS文件系统使用了数据块缓存等技术,也可能会导致文件不可见但已占用空间的情况。如果您需要及时查看文件状态和占用空间大小,可以使用HDFS提供的命令来查看文件系统状态,例如hdfs dfs -du -h命令。
总之,针对这些问题,建议逐一排查,并针对具体情况进行调整和优化。如果需要更详细的帮助和支持,可以联系阿里云技术支持或者Flink社区。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。