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

使用了一年多的flink,发现有两个痛点,一个是不能自动扩缩容,一个是启动/恢复时间过长?对运维和服

使用了一年多的flink,发现有两个痛点,一个是不能自动扩缩容,一个是启动/恢复时间过长?对运维和服务的持续性有很大的挑战,是用flink operator k8s那种吗?

展开
收起
真的很搞笑 2023-07-03 15:31:32 336 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flink 是一个分布式计算框架,具有高可用性和高并发性等优点,但同时也存在一些痛点,例如不能自动扩缩容和启动/恢复时间过长等问题,这些问题可能会对运维和服务稳定性造成一定的影响。

    下面分别针对这两个问题,提供一些解决方案和建议:

    自动扩缩容问题:Flink 目前不支持自动扩缩容,需要通过手动调整 TaskManager 的数量来实现。但是,可以通过一些第三方工具或者云服务提供商的自动扩缩容功能来解决这个问题。例如,可以使用 Kubernetes、YARN、Mesos 等容器编排系统,或者使用云服务商的托管服务,如 AWS Flink、Aliyun DataStream 等。
    另外,Flink 1.14 版本开始支持动态 TaskManager 分配和释放资源的功能,可以通过调整 TaskManager 的 slot 数量来实现动态扩缩容。这个功能可以结合云服务商的自动扩缩容功能来实现更加灵活和自动化的资源管理。

    启动/恢复时间过长问题:Flink 在启动和恢复时需要加载状态和元数据等信息,这可能会导致启动/恢复时间过长。为了解决这个问题,可以采取以下措施:
    配置合适的 Checkpoint 间隔和 Checkpoint State 存储方式,可以有效减少恢复时间。
    预热集群,可以在业务高峰期之前提前启动集群,加载状态和元数据,预热集群,以减少启动/恢复时间。
    使用增量 Checkpoint,可以只保存增量的状态和元数据,以减少恢复时间。
    对于长时间运行的作业,可以考虑使用保存点(Savepoint)机制,将作业的状态保存到外部存储中,以便在需要恢复时快速恢复。同时,可以定期创建保存点,并将保存点存储到外部存储中,以便在需要时进行恢复。

    2023-07-30 09:39:46
    赞同 展开评论 打赏
  • 对于您提到的两个痛点,即不能自动扩缩容和启动/恢复时间过长,在使用 Flink 一年多的经验中确实会面临一些挑战。为了解决这些问题,可以考虑以下方案:

    自动扩缩容: - 可以使用 Flink on Kubernetes(Flink Operator for Kubernetes)。该解决方案能够与 Kubernetes 集成,实现 Flink 作业的自动扩缩容。通过配置资源请求和限制,并结合 Kubernetes 的弹性伸缩功能,您可以根据负载需求自动调整 Flink 作业的任务数量来进行扩缩容。

    启动/恢复时间过长: - 考虑优化 Flink 作业的启动和恢复时间。可以采用以下措施:   - 预热状态:在启动或恢复之前,预先将相关数据加载到内存中,以减少启动和恢复所需的时间。   - 使用快照:使用 Flink 的检查点机制来创建作业的快照。这样可以避免从头开始处理数据,而是从最近的检查点位置进行恢复,减少恢复时间。   - 调整作业图:优化 Flink 作业的任务拓扑结构,减少不必要的计算和通信开销,从而加快启动和恢复时间。

    以上建议是一般的优化方向,具体的实施方法可能因您的具体环境和需求而有所不同。使用 Flink Operator for Kubernetes 可能是一个好的选择,它可以帮助您自动扩缩容,并提供更好的运维管理能力。

    2023-07-30 09:40:22
    赞同 展开评论 打赏
  • flink on k8s可以自动扩缩容,此回答整理自钉群“【③群】Apache Flink China社区”

    2023-07-03 15:37:48
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    企业运维之云原生和Kubernetes 实战 立即下载
    可视化架构运维实践 立即下载
    2021云上架构与运维峰会演讲合集 立即下载