【问题标题】:How to make an automatic savepoint in Flink Stateful Functions application?如何在 Flink Stateful Functions 应用程序中创建自动保存点?
【发布时间】:2020-07-26 01:41:09
【问题描述】:

我正在尝试深入研究新的有状态函数方法,并且我已经尝试手动创建保存点 (https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/deployment-and-operations/state-bootstrap.html#creating-a-savepoint)。

它的作用就像一个魅力,但我找不到自动完成它的方法。例如,我有几百万个密钥,我需要将它们全部写入保存点。

【问题讨论】:

    标签: apache-flink flink-streaming flink-statefun


    【解决方案1】:

    您的问题是关于如何将示例中的env.fromElements 替换为从文件或其他数据源读取的内容?这里使用的 Flink 的 DataSet API 可以从任何HadoopInputFormat 读取。详情请见DataSet Connectors。

    对于常见情况,有易于使用的快捷方式。如果您只想使用TextInputFormat 从文件中读取数据,则如下所示:

    env.readTextFile(path)
    

    并使用 CsvInputFormat 从 CSV 文件中读取:

    env.readCsvFile(path)
    

    有关使用这些快捷方式的更多信息,请参阅 Data Sources。

    如果我误解了问题,请澄清您的疑虑。

    【讨论】:

    • 假设我有一个有状态的函数应用程序和一个带有@Persisted 注释字段的函数。我想多次调用这个函数。在经典的 Flink 流中,我可以执行类似flink savepoint 的操作,它会创建我所有状态的快照。比我可以使用创建的保存点在重新启动或其他情况后恢复状态。是否可以对 Stateful Functions 应用程序做同样的事情?
    • 是的,当然。您在问题中链接到的文档解释了如何引导保存点,而无需先运行有状态函数应用程序。但与任何其他 Flink 流应用程序一样,您可以使用 flink savepoint 或 flink stop 从正在运行的有状态函数应用程序中获取保存点。
    猜你喜欢
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多