Flink传统输入源:java.io.NotSerializableException

时间:2017-06-28 15:14:27

标签: apache-flink

我试图了解Apache Flink,并且在概念层面上有一个我不理解的问题:

我尝试实现lucene输入源:

 ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    DataSet<Document> ds = env.createInput(new IteratorInputFormat(new DocstoreReader(path)),
            new GenericTypeInfo( org.apache.lucene.document.Document.class));

您可以在以下要点中找到DocstoreReader实现:https://gist.github.com/kindofwhat/9776105313af30027b6d6b84ca10c472

运行整个事情会产生以下异常:

Caused by: org.apache.flink.runtime.operators.util.CorruptConfigurationException: Could not write the user code wrapper class org.apache.flink.api.common.operators.util.UserCodeObjectWrapper : java.io.NotSerializableException: org.apache.lucene.index.ReadOnlyDirectoryReader

我不明白为什么这是一个问题:为什么要将这个类序列化?有趣的是,当在流式执行环境中使用时,整个事情都有效。

一般问题:如何将遗留源作为输入源添加到Flink?我必须走这条路吗

传统 - &gt;写信给flink&#34;可以理解&#34; formata - &gt; flink处理?

0 个答案:

没有答案