开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请大家帮忙看一下下面的问题如何解决呢?

有两个问题需要请教以下: 环境是flink1.15.2 FileSink.forRowFormat()方法写数据到hdfs3.0.0。 1、flink写到hdfs的文件以.开头,当flink任务基于savepoint重启后, 重启前的以.开头的文件,在重启后并不能rename或者commit为正式文件,还是以.开头,.inprogress状态;2、flink任务在运行中,很多文件不可见,但是对应的hdfs目录du看大小已经是很大了。 请问这两个问题有同学遇到过吗?是什么原因?d103b2279b873297a0cd23f0d35ff3d.png

展开
收起
JWRRR 2023-04-03 15:12:43 301 0
1 条回答
写回答
取消 提交回答
  • 存在即是合理

    1、重启后的文件名以.开头,不能rename或commit为正式文件的问题。这可能是因为,在Flink中,以.开头的文件名被视为隐藏文件,而FileSink在写文件时使用了以.开头的文件名,这导致了在重启后无法对这些文件进行rename或commit的操作。为了解决这个问题,您可以尝试使用其他文件名或文件命名方式,避免使用以.开头的文件名。另外,您也可以在Flink中自定义FileNamingFunction来生成文件名,以确保生成的文件名符合您的需求。

    2、文件不可见但是du看大小已经很大的问题。这可能是因为,HDFS中的文件系统具有一定的缓存机制,可能会延迟一段时间才能看到最新的文件状态。另外,如果您的HDFS文件系统使用了数据块缓存等技术,也可能会导致文件不可见但已占用空间的情况。如果您需要及时查看文件状态和占用空间大小,可以使用HDFS提供的命令来查看文件系统状态,例如hdfs dfs -du -h命令。

    总之,针对这些问题,建议逐一排查,并针对具体情况进行调整和优化。如果需要更详细的帮助和支持,可以联系阿里云技术支持或者Flink社区。

    2023-04-14 17:36:10
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载