一、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消费者接收消息