在哪里可以找到独立输出

时间:2019-09-14 08:42:01

标签: apache-flink

我有以下flink工作计数,当我在IDE中运行它时,它会按如下所示正确打印字数

(hi,2)
(are,1)
(you,1)
(how,1)

但是当我在集群中运行它时,我没有找到输出。

1. Start cluster using start-cluster.sh
2. Open the webui at http://localhost:8081
3. In the Submit new Job page, Submit the jar, and then input the entry class and then click the Submit button to submit the job

4. The job is done successfully, but I didn't find the output in the TaskManager or JobManager Logs on the UI.

我会问我在哪里可以找到输出

单词计数应用程序是:

import org.apache.flink.api.scala.ExecutionEnvironment

import org.apache.flink.api.scala._

/**
  * Wordcount example
  */

object WordCount {

  def main(args: Array[String]) {

    val env = ExecutionEnvironment.getExecutionEnvironment

    val data = List("hi", "how are you", "hi")

    val dataSet = env.fromCollection(data)

    val words = dataSet.flatMap(value => value.split("\\s+"))

    val mappedWords = words.map(value => (value, 1))

    val grouped = mappedWords.groupBy(0)

    val sum = grouped.sum(1)

    sum.collect().foreach(println)


  }

}

1 个答案:

答案 0 :(得分:0)

在每个taskmanager计算机的日志目录中,您应该同时找到* .log和* .out文件。无论您打印了什么作业,都将转到.out文件。这就是Web UI中每个任务管理器的“ stdout”选项卡中显示的内容-尽管如果该文件很大,浏览器可能会难以获取和显示它。

更新:显然,Flink的批处理环境处理的内容与流处理不同。当我使用CLI提交此批处理作业时,输出将显示在终端中,而不是.stream文件中的输出,就像流式作业一样。

我建议您更改示例以在最后执行类似的操作以将结果收集到文件中:

...
sum.writeAsText("/tmp/test")
env.execute()