flink kafka sink (scala)

将对象数据通过Gson 转为jsonString,在将数据写到kafka中,这个可以根据需要修改,比如按照\t分开也行,可以节省字段名称的空间。

这里还有一个问题,就是每来一条数据都需要new Gson 对象,有没有办法减少创建呢

我们知道job 和task之间是不能够传输序列化的对象的。

那么如果需要减少Gson的创建,可以自定义map函数,继承并实现RichMapFunction中的方法,其中open就可以只创建一次Gson。

data.map(new Gson().toJson(_))

.addSink(new FlinkKafkaProducer[String]("topicName", new SimpleStringSchema(), props, Optional.ofNullable[FlinkKafkaPartitioner[String]](null)))

.uid("write-to-kafka")

.name("write-to-kafka")

自定义map:

private class DemoMap extends RichMapFunction[Data, String] {

var gson:Gson=_

override def open(parameters: Configuration): Unit = {

gson=new Gson()

}

override def map(value: Data): String = {

gson.toJson(value)

}

override def close(): Unit = {

}

}

相关推荐
青云交13 分钟前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
还是大剑师兰特5 小时前
Scala面试题及详细答案100道(11-20)-- 函数式编程基础
scala·大剑师·scala面试题
还是大剑师兰特6 小时前
Flink面试题及详细答案100道(1-20)- 基础概念与架构
大数据·flink·大剑师·flink面试题
yh云想9 小时前
《从入门到精通:Kafka核心原理全解析》
分布式·kafka
sleetdream9 小时前
Flink Sql 按分钟或日期统计数据量
sql·flink
武子康10 小时前
大数据-70 Kafka 日志清理:删除、压缩及混合模式最佳实践
大数据·后端·kafka
阿Paul果奶ooo1 天前
Flink中基于时间的合流--双流联结(join)
大数据·flink
花酒锄作田1 天前
Nginx反向代理Kafka集群
nginx·kafka
Direction_Wind1 天前
Flinksql bug: Heartbeat of TaskManager with id container_XXX timed out.
大数据·flink·bug
最初的↘那颗心1 天前
Java 泛型类型擦除
java·flink