使用 Flink 本地环境进行生产



我想了解 LocalExecutionEnvironment 的局限性,以及它是否可以用于在生产中运行?

感谢任何帮助/见解。谢谢

LocalExecutionEnvironment 启动了一个 Flink MiniCluster,它在单个 JVM 中运行整个 Flink 系统(JobManager、TaskManager(。因此,您只能使用这台计算机上可用的 CPU 内核和内存。您也没有来自多个作业管理器的 HA。我还没有看过MiniCluster环境的其他限制,但我确信存在更多限制。

LocalExecutionEnvironment 在启动时不会加载配置文件,因此您必须在应用程序中执行所有配置。默认情况下,它也不提供 REST 终结点。您可以通过执行以下操作来解决这两个问题:

String cwd = Paths.get(".").toAbsolutePath().normalize().toString();
Configuration conf = GlobalConfiguration.loadConfiguration(cwd);
env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);

日志记录可能是另一个需要解决方法的问题。

我不相信你能使用 Flink CLI 来控制作业,但如果你创建了 Web UI(如上所示(,你至少可以使用 REST API 来做一些事情,比如触发保存点(在第一次使用 REST API 获取作业 ID 之后(。

最新更新