flink任务在容器云集群中运行时,需要将一部分数据放在容器中处理,如果放在本地盘可能会将文件系统占满,影响到其他容器的运行;如果存算分离,可能IO不能满足需求。建议采用哪种方式?
收起这个需要结合Flink任务的需求和集群实际情况,来选择存储方式,我们可以结合本地存储、持久卷和高速分布式存储,以满足不同阶段和任务的需求。例如,临时数据和中间结果可以使用本地存储,高频访问数据可以放在内存存储,持久化数据则放在分布式存储 。
比如,在高IO需求的短期任务中使用本地存储,而对于需要持久化的长期任务使用持久卷。
还可以进行分层存储,这样可以利用内存存储(我们平台是用的是Alluxio)进行缓存,结合持久卷提供底层持久化存储,以优化IO性能。
如果以上都不想,那么最直接的办法就是使用K8S的节点亲和性、资源请求和限制,确保Flink任务调度到具有足够本地存储和资源的节点上。