@@ -2,11 +2,9 @@ package com.zhangblue.sink
22
33import java .util .Properties
44
5- import com .alibaba .fastjson .JSONObject
65import com .zhangblue .entity .TemperatureSensor
76import org .apache .flink .api .common .serialization .{DeserializationSchema , SimpleStringSchema }
87import org .apache .flink .streaming .api .scala ._
9- import org .apache .flink .streaming .connectors .kafka .internal .FlinkKafkaProducer
108import org .apache .flink .streaming .connectors .kafka .{FlinkKafkaConsumer011 , FlinkKafkaProducer011 }
119
1210/**
@@ -21,11 +19,14 @@ object SinkKafkaDemo {
2119 // 需求,求出传感器迄今为止探索到的最高温度的传感器数据
2220 // 1. 环境
2321 val env = StreamExecutionEnvironment .getExecutionEnvironment
22+ // 获取类加载器
23+ val classLoader = this .getClass.getClassLoader;
24+
2425 // 2. 读取kafka源,根据传感器的id进行分组,求每组中最大的温度值,并显示结果
2526 val topic = " my-topic"
2627 val valueDeserializationSchema : DeserializationSchema [String ] = new SimpleStringSchema ()
2728 val props : Properties = new Properties ()
28- props.load(this .getClass.getClassLoader. getResourceAsStream(" kafka/localhost -consumer.properties" ))
29+ props.load(classLoader. getResourceAsStream(" kafka/home -consumer.properties" ))
2930 val kafkaSource = env.addSource(new FlinkKafkaConsumer011 [String ](topic, valueDeserializationSchema, props))
3031
3132 val srcDataStream : DataStream [TemperatureSensor ] = kafkaSource.filter(_.trim.nonEmpty).map(fun = lineData => {
@@ -39,21 +40,12 @@ object SinkKafkaDemo {
3940 }).keyBy(" id" ).maxBy(" temperature" )
4041
4142
42- val producerConfig : Properties = new Properties ();
43- producerConfig.load(this .getClass.getClassLoader.getResourceAsStream(" kafka/localhost-producer.properties" ))
43+ // 将DataStream 输出到Kafka中
44+ val producerConfig : Properties = new Properties ();
45+ producerConfig.load(classLoader.getResourceAsStream(" kafka/home-producer.properties" ))
4446 srcDataStream.map(data => data.toString).addSink {
45- sinkFunction = new FlinkKafkaProducer [String ](" target-topic" , new SimpleStringSchema (), new Properties () )
47+ new FlinkKafkaProducer011 [String ](" flink- target-topic" , new SimpleStringSchema (), producerConfig )
4648 }
47-
48-
49-
50-
51-
52-
53-
54-
55-
56-
5749 // 3. 启动
5850 env.execute(this .getClass.getSimpleName)
5951 }
0 commit comments