我想了解LocalExecutionEnvironment的局限性,以及是否可以将其用于生产环境?
感谢任何帮助/见解。谢谢
LocalExecutionEnvironment启动了Flink MiniCluster,它在单个JVM中运行整个Flink系统(JobManager,TaskManager)。因此,您仅限于一台计算机上可用的CPU内核和内存。您也没有多个JobManager的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之后获取工作ID的API)。