使用flink发送多个主题kafka sink

时间:2018-05-25 12:28:23

标签: scala apache-kafka apache-flink kafka-producer-api flink-streaming

我有一个像:

这样的数据流
DataStream[myTuple(topic, value)]

我想在相关主题中发送特定值。

所以我尝试做那样的事情:

new FlinkKafkaProducer010[myTuple](
  "default_topic",
  new KeyedSerializationSchema[myTuple](){
    override def getTargetTopic(element: myTuple): String = element.topic
    override def serializeKey(element: myTuple): Array[Byte] = null
    override def serializeValue(element: myTuple): Array[Byte] = new SimpleStringSchema().serialize(element.value)
  },
  properties)

但它不起作用,我有这个警告:

WARN  org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducerBase  - Overwriting the 'key.serializer' is not recommended
WARN  org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducerBase  - Overwriting the 'value.serializer' is not recommended

我不知道怎么做,换个方式。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可能在属性中设置了key.serializervalue.serializer。您不应该这样做,因为这会覆盖Flink内部使用的序列化程序(ByteArraySerializer)。删除这些属性,您的代码应该可以工作。