flink运算符链pushtooperator中的nullpointer

pcww981p  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(400)

我在写Kafka的flink申请

FlinkKafkaConsumer<MyPojo> consumer = new FlinkKafkaConsumer(TOPIC, new MyPojoDes(), prop)
StreamExecutionEnvironment env = new StreamExecutionEnvironment ();
env.addSource(consumer).print();

在高层次上,这个应用程序使用来自kafka主题的消息并打印它。但当我运行它时,我得到以下例外
原因:java.lang.nullpointerexception:null位于org.apache.flink.streaming.runtime.tasks.operatorchain$copyingchainingoutput.pushtooperator(operatorchain)。java:577)在org.apache.flink.streaming.runtime.tasks.operatorchain$copyingchainingoutput.collect(operatorchain。java:554)在org.apache.flink.streaming.runtime.tasks.operatorchain$copyingchainingoutput.collect(operatorchain。java:534)位于org.apache.flink.streaming.api.operators.abstractstreamoperator$countingoutput.collect(abstractstreamoperator)。java:718)
我试着在代码中调试,发现operatorchain类中有一个序列化程序变量,它是空的,不知道为什么

hujrc8aj

hujrc8aj1#

我发现在反序列化程序中调试时,返回的是null而不是实际的类型信息,因此operatorchain中的序列化程序变量为null。

public TypeInformation<MyPojo> getProducerdType()
{
    //return null
    return TypeInformationOf(MyPojo.class);
}

相关问题