现在,我的flink代码正在处理一个文件,并将数据存储在具有1个分区的kafka主题上。
现在我有一个带有2个分区的主题,我希望flink代码使用DefaultPartitioner在这2个分区上接收数据。
您能帮我吗?
这是我当前代码的代码段:
DataStream<String> speStream = inputStream..map(new MapFunction<Row, String>(){....}
Properties props = Producer.getProducerConfig(propertiesFilePath);
speStream.addSink(new FlinkKafkaProducer011(kafkaTopicName, new KeyedSerializationSchemaWrapper<>(new SimpleStringSchema()), props, FlinkKafkaProducer011.Semantic.EXACTLY_ONCE));
答案 0 :(得分:0)
通过将flinkproducer更改为
解决了此问题 speStream.addSink(new FlinkKafkaProducer011(kafkaTopicName,new SimpleStringSchema(),
props));
我以前使用的是
speStream.addSink(new FlinkKafkaProducer011(kafkaTopicName,
new KeyedSerializationSchemaWrapper<>(new SimpleStringSchema()), props,
FlinkKafkaProducer011.Semantic.EXACTLY_ONCE));
答案 1 :(得分:0)
在Flink
版本1.11
(我正在使用Java)中,SimpleStringSchema
需要一个包装器(即KeyedSerializationSchemaWrapper
),@ Ankit也使用该包装器但由于相同原因导致我低于constructor
相关错误,因此从建议的解决方案中删除。
FlinkKafkaProducer<String> producer = new FlinkKafkaProducer<String>(
topic_name, new KeyedSerializationSchemaWrapper<>(new SimpleStringSchema()),
properties, FlinkKafkaProducer.Semantic.EXACTLY_ONCE);
错误:
The constructor FlinkKafkaProducer<String>(String, SimpleStringSchema, Properties, FlinkKafkaProducer.Semantic) is undefined