Hello,

with 1.2.0 `WritableTypeInfo` got moved into its own artifact
(flink-hadoop-compatibility_2.10-1.2.0.jar). Unlike with 1.1.0, the
distribution jar `flink-dist_2.10-1.2.0.jar` does not include the hadoop
compatibility classes anymore. However, `TypeExtractor` which is part of
the distribution jar tries to load `WritableTypeInfo` using it was
loaded itself from:

>               Class<?> typeInfoClass;
>               try {
>                       typeInfoClass = 
> Class.forName(HADOOP_WRITABLE_TYPEINFO_CLASS, false, 
> TypeExtractor.class.getClassLoader());
>               }
>               catch (ClassNotFoundException e) {
>                       throw new RuntimeException("Could not load the 
> TypeInformation for the class '"
>                                       + HADOOP_WRITABLE_CLASS + "'. You may 
> be missing the 'flink-hadoop-compatibility' dependency.");
>               }

Adding `flink-hadoop-compatibility` to my application jar leads to the
following stack trace on yarn (running `bin/flink run -m yarn-cluster...`):

> Caused by: java.lang.RuntimeException: Could not load the TypeInformation for 
> the class 'org.apache.hadoop.io.Writable'. You may be missing the 
> 'flink-hadoop-compatibility' dependency.
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.createHadoopWritableTypeInfo(TypeExtractor.java:2025)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.privateGetForClass(TypeExtractor.java:1649)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.privateGetForClass(TypeExtractor.java:1591)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfoWithTypeHierarchy(TypeExtractor.java:778)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.createSubTypesInfo(TypeExtractor.java:998)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfoWithTypeHierarchy(TypeExtractor.java:679)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.privateCreateTypeInfo(TypeExtractor.java:629)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfo(TypeExtractor.java:595)
>       at 
> org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfo(TypeExtractor.java:588)
>       at 
> org.apache.flink.api.common.typeinfo.TypeHint.<init>(TypeHint.java:47)
>       at cz.seznam.euphoria.benchmarks.flink.Util$2.<init>(Util.java:80)

I guess I'm supposed to customize my flink installation by adding the
hadoop-compatibility jar to flink's `lib` dir, correct? If so, is this
documented? I couldn't find any hints on [1] nor [2] and, thus, suppose
this is maybe an unintentional change between 1.1 and 1.2.

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/batch/hadoop_compatibility.html
[2]
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/migration.html

P.


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to