Scala 在弗林克消费多个卡夫卡经纪人的多个主题
我将flink-1.4.2与scala一起使用,我希望使用Kafka的多个数据流源。我使用了合并它们的union函数,但我能够使用一个卡夫卡源Scala 在弗林克消费多个卡夫卡经纪人的多个主题,scala,apache-kafka,apache-flink,Scala,Apache Kafka,Apache Flink,我将flink-1.4.2与scala一起使用,我希望使用Kafka的多个数据流源。我使用了合并它们的union函数,但我能够使用一个卡夫卡源 def main(args: Array[String]) { val kProps = new Properties() kProps.setProperty("bootstrap.servers", "kafka01.prod.com:9092") kProps.setProperty("group.id", "test_cg
def main(args: Array[String]) {
val kProps = new Properties()
kProps.setProperty("bootstrap.servers", "kafka01.prod.com:9092")
kProps.setProperty("group.id", "test_cg")
kProps.setProperty("enable.auto.commit", "true")
kProps.setProperty("auto.offset.reset", "latest")
val kProps2 = new Properties()
kProps2.setProperty("bootstrap.servers", "kafka04.prod.com:9092")
kProps2.setProperty("group.id", "test_cg_2")
kProps2.setProperty("enable.auto.commit", "true")
kProps2.setProperty("auto.offset.reset", "latest")
val sink = new BucketingSink[SimpleKafkaOutputMsg]("s3://some-bucket/")
sink.setBucketer(new DateTimeBucketer[SimpleKafkaOutputMsg]("yyyy-MM-dd-HH"))
sink.setWriter(new StringWriter[SimpleKafkaOutputMsg])
sink.setBatchSize(350 * 1024 * 1024) // 350 MB
sink.setPendingPrefix("file-")
sink.setPendingSuffix(".csv")
val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime)
env.setParallelism(9)
env.setStateBackend(new RocksDBStateBackend("file:///tmp/flink/checkpoints", false))
val topics = List("ROUNDTRIP1")
val inpStream1 = env.addSource(new FlinkKafkaConsumer011(topics.asJava, new IndexedSectorMessagDes(), kProps))
val topics2 = List("ROUNDTRIP2")
val inpStream2 = env.addSource(new FlinkKafkaConsumer011(topics2.asJava, new IndexedSectorMessagDes(), kProps2))
val inpStream = inpStream1.union(inpStream2)
.filter(new InvalidFlightsFilterFunction())
.map(attachUID(_))
.assignTimestampsAndWatermarks(new IngestionTimeExtractor[IndexedSectorMessage]())
val intStream = inpStream.flatMap { s => flattenFlights(s) }
intStream.keyBy(getFlightKey _).process(new KeyedWindowTimeMedianFunction()).addSink(sink)
env.execute("Scala WindowExample Example")`
你能更详细地解释一下你面临的问题吗?流的联合不是从多个主题消费吗?我们有两个不同的kafka代理集群,从每个kafka代理集群,我们需要消费不同的kafka主题。因此,我们使用不同的kafka代理群集创建了两个不同的输入流,我们使用union合并了两个输入流,但它能够连接一个kafka代理群集。您能够从运行Flink的机器ping第二个代理群集吗?您收到的错误消息是什么?是的,我可以。