Flink流处理APi(sink端输出操作)

一、Flink输出到Kafka

kafkaUtill连接kafka工具类

package com.sinkkafka

import org.apache.flink.api.common.serialization.SimpleStringSchema
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer011

/**
 * TODO
 *
 * @author 徐磊
 * @email [email protected]
 * @data2020/02/07 上午 11:04
 */
object Kafkautil {
     def tokafka(topic:String): FlinkKafkaProducer011[String] ={
      val sinkkafka= new FlinkKafkaProducer011[String]("node132:9092",topic,new SimpleStringSchema())
       sinkkafka
     }
}

接收消息并输出到Kafka

package com.sinkkafka

import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.streaming.api.scala._
/**
 * TODO
 *
 * @author 徐磊
 * @email [email protected]
 * @data2020/02/07 上午 11:12
 */
object Flink2Kafka extends App {
  val env = StreamExecutionEnvironment.getExecutionEnvironment
  val stream = env.socketTextStream("node132",7777)
  
  val kafkasink = Kafkautil.tokafka("1705a")    //topic可以自己定义  只要kafka消费者 的 --topic 对应上就可以

  stream.addSink(kafkasink)       //stram的泛型必须是string因为 kafkasink 的泛型时string

stream.print()
  env.execute()
}

结果 端口输入消息,kafka消费者接收消息

在这里插入图片描述

发布了50 篇原创文章 · 获赞 30 · 访问量 7038

猜你喜欢

转载自blog.csdn.net/qq_44472134/article/details/104208001