Apache kafka 卡夫卡与弗林克的关系不仅仅是纱线的展开

Apache kafka 卡夫卡与弗林克的关系不仅仅是纱线的展开,apache-kafka,cluster-computing,yarn,apache-flink,Apache Kafka,Cluster Computing,Yarn,Apache Flink,我开发了一个简单的Flink作业,它消耗卡夫卡流。所有这些都对当地环境产生了巨大的影响。但当我试着用纱线在集群上运行Flink作业时,什么都没有发生。(而且,我没有任何错误消息) 当然,我已经检查了集群是否可以访问流,并且它已经访问了。我甚至可以在集群的每台机器上以一个简单的java程序的形式运行我的作业,它可以正常工作 有什么见解可以解释这一点吗 多谢各位 编辑: object KafkaConsuming { def main(args: Array[String]) {

我开发了一个简单的Flink作业,它消耗卡夫卡流。所有这些都对当地环境产生了巨大的影响。但当我试着用纱线在集群上运行Flink作业时,什么都没有发生。(而且,我没有任何错误消息)

当然,我已经检查了集群是否可以访问流,并且它已经访问了。我甚至可以在集群的每台机器上以一个简单的java程序的形式运行我的作业,它可以正常工作

有什么见解可以解释这一点吗

多谢各位

编辑:

object KafkaConsuming {

  def main(args: Array[String]) {


    // Flink parameter tool
    // Allow to pass arguments to this script
    val params: ParameterTool = ParameterTool.fromArgs(args)

    // set up streaming execution environment
    val env = StreamExecutionEnvironment.getExecutionEnvironment

    // make parameters available globally
    env.getConfig.setGlobalJobParameters(params)

    val properties = new Properties();
    properties.setProperty("bootstrap.servers", params.get("server"));

    // only requied for Kafka 0.8
    //properties.rsetProperty("zookeeper.connect", "X.X.X.X:2181");

    val stream: DataStream[String] = env.addSource(new FlinkKafkaConsumer010[String](params.get("topic"), new SimpleStringSchema(), properties))

    //stream.print()

    val logs: DataStream[MinifiedLog] = stream.map(x => LogParser2.parse(x))

    val sessions = logs.map { x => (x.timestamp, x.sent, 1l)}

    val sessionCnt: DataStream[(Long, Long, Long)] = sessions
      // key stream by sensorId
      .keyBy(2)
      // tumbling time window of 1 minute length
      .window(TumblingProcessingTimeWindows.of(Time.seconds(10)))  
      .reduce( (x: (Long, Long, Long), y: (Long, Long, Long)) => (x._1, x._2 + y._2, x._3 + y._3))
      .map { z => (z._1, z._2 / 10, z._3 / 10)}

     sessionCnt.print()

    env.execute("Kafka consuming")

  }
}

sessionnt.print()
的输出将写入TaskManager上的标准输出

在纱线上,访问该输出的最简单方法是使用聚合纱线日志检索所有日志(
纱线日志-applicationId

我不确定对Flink UI中标准输出文件的访问是否正确


另一种检查数据是否到达的方法是使用Flink Web UI。

如何检查数据是否到达集群?我在集群上运行了kafka consumer,并且我正在接收流
bin/kafka-console-consumer.sh–引导服务器X.X.X.X:9092–主题日志–从头开始
Flink应用程序的代码可以发布吗?是的,我编辑了我的帖子。我没有考虑标准输出问题。我有效地让数据到达Flink Web UI。我将探索返回输出的方法。非常感谢。
object KafkaConsuming {

  def main(args: Array[String]) {


    // Flink parameter tool
    // Allow to pass arguments to this script
    val params: ParameterTool = ParameterTool.fromArgs(args)

    // set up streaming execution environment
    val env = StreamExecutionEnvironment.getExecutionEnvironment

    // make parameters available globally
    env.getConfig.setGlobalJobParameters(params)

    val properties = new Properties();
    properties.setProperty("bootstrap.servers", params.get("server"));

    // only requied for Kafka 0.8
    //properties.rsetProperty("zookeeper.connect", "X.X.X.X:2181");

    val stream: DataStream[String] = env.addSource(new FlinkKafkaConsumer010[String](params.get("topic"), new SimpleStringSchema(), properties))

    //stream.print()

    val logs: DataStream[MinifiedLog] = stream.map(x => LogParser2.parse(x))

    val sessions = logs.map { x => (x.timestamp, x.sent, 1l)}

    val sessionCnt: DataStream[(Long, Long, Long)] = sessions
      // key stream by sensorId
      .keyBy(2)
      // tumbling time window of 1 minute length
      .window(TumblingProcessingTimeWindows.of(Time.seconds(10)))  
      .reduce( (x: (Long, Long, Long), y: (Long, Long, Long)) => (x._1, x._2 + y._2, x._3 + y._3))
      .map { z => (z._1, z._2 / 10, z._3 / 10)}

     sessionCnt.print()

    env.execute("Kafka consuming")

  }
}