2

我已经设置了示例项目并构建了它。我能够按预期运行 WordCount 程序。但是当我运行 SocketTextWordCount 时,我没有打印出任何结果。

  • 我通过 nc 发送数据(双方 localhost:9999)
  • 在正在运行的作业的 Web 控制台中,我可以看到正在发送/接收消息

但是我从来没有看到 counts.print() 输出在任何地方打印出来,即使在终止 nc 会话之后也是如此。

编辑 - 当我改变它以将结果打印到文本文件时,没问题。所以问题似乎是 counts.print() 没有正确写入我正在运行示例的控制台的标准输出。

4

1 回答 1

6

DataStreams 被打印到 TaskManager 进程的标准输出。在启动 Flink 实例(本地或集群)时,TaskManager 的标准输出被定向到Flink 根目录下的一个.out文件中。./log/因此,您应该检查输出是否写入这些文件。

这种行为与DataSet.print()在 JobManager 上收集结果、运送到客户端并由客户端打印的行为不同。

于 2016-05-17T06:56:30.170 回答