如何从工作节点收集结果并在intellij中打印?
how to collect the result from worker node and print it in intellij?
我的密码是here
我在intellij中使用这段代码,我的步骤是:
①mvn clean
②mvn包
③运行
此代码用于使用 intellij 连接到远程集群。
print()
将结果保存在集群中随机节点的随机任务管理器中,
所以我需要在 $FLINK_HOME/log/*.out
中查找结果
有没有办法收集这些结果并打印在 intellij 的控制台中window?
感谢您的帮助。
如果您运行 IntelliJ 中的作业,使用本地流执行环境,例如,通过
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
而不是在远程集群上,print()
将在控制台中显示其结果。但是对于远程流执行环境,结果将最终出现在任务管理器的文件系统中,正如您所指出的。
我认为没有方便的方法来收集这些结果。 Flink 是围绕可扩展性设计的,因此并行接收器旨在避免任何瓶颈。任何将统一所有这些输出流的东西都会阻碍可扩展性。
但是,如果您想将所有结果显示在一个地方,您可以做的是将 PrintSink 的并行度降低到 1。这不会将结果带入 IntelliJ,但它将意味着您将在一个任务管理器上的一个文件中找到所有输出。你可以通过
.print()
.setParallelism(1)
我的密码是here
我在intellij中使用这段代码,我的步骤是:
①mvn clean
②mvn包
③运行
此代码用于使用 intellij 连接到远程集群。
print()
将结果保存在集群中随机节点的随机任务管理器中,
所以我需要在 $FLINK_HOME/log/*.out
中查找结果有没有办法收集这些结果并打印在 intellij 的控制台中window?
感谢您的帮助。
如果您运行 IntelliJ 中的作业,使用本地流执行环境,例如,通过
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
而不是在远程集群上,print()
将在控制台中显示其结果。但是对于远程流执行环境,结果将最终出现在任务管理器的文件系统中,正如您所指出的。
我认为没有方便的方法来收集这些结果。 Flink 是围绕可扩展性设计的,因此并行接收器旨在避免任何瓶颈。任何将统一所有这些输出流的东西都会阻碍可扩展性。
但是,如果您想将所有结果显示在一个地方,您可以做的是将 PrintSink 的并行度降低到 1。这不会将结果带入 IntelliJ,但它将意味着您将在一个任务管理器上的一个文件中找到所有输出。你可以通过
.print()
.setParallelism(1)