Apache Flink GCS FileSink由于许多小文件而性能不佳

jtw3ybtb  于 6个月前  发布在  Apache
关注(0)|答案(2)|浏览(73)

我在做一个Apache Flink(v 1.17.2)流媒体应用程序,其中我的文件接收器是谷歌云存储.性能非常差,我的任务管理器/s是100%忙碌忙.我相信这是有关的问题,它写了太多的小文件到.inprogress临时文件.启用检查点(75秒),它写入多达220个文件到.inprogress状态只是一个部分.与1个任务管理器它写入多达500个事件/秒到云存储,我也使用avro格式的输出文件.
这是我对文件链接的定义

val sink: FileSink[Click] = FileSink
    .forBulkFormat(new Path(""), AvroWriters.forSpecificRecord(classOf[Click]))
    .withBucketAssigner(new ObjectStorageBucketAssigner())
    .withRollingPolicy(OnCheckpointRollingPolicy.build())
    .build()

字符串
我尝试更改以下配置:state.backend.fs.memory-thresholdstate.backend.fs.write-buffer-sizetaskmanager.network.numberOfBufferstaskmanager.network.memory.buffer-debloat.enabled
在实践中,这对性能没有影响。如何改变这种行为并提高性能(吞吐量)?

sc4hvdpw

sc4hvdpw1#

  1. state.backend.xxx设置用于将状态保存到文件系统,与您的文件接收器无关。
    1.如果你的任务管理器100%的忙碌,问题可能不是你的文件接收器,而是你的工作流中的某些东西导致了高CPU负载。
jucafojl

jucafojl2#

也许文档中描述的文件压缩特性与您的情况有关。

相关问题