Short-term I'd try relocating the okio/okhttp dependencies in your jar.

I'm not too keen on adding more relocations to the hadoop jar; I can't gauge the possible side-effects.

On 27.02.2019 14:54, Austin Cawley-Edwards wrote:
Following up to add more info, I am building my app with maven based on the sample Flink pom.xml

My shade plugin config is:
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.0.0</version> <executions> <!-- Run shade goal on package phase --> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <artifactSet> <excludes> <exclude>org.apache.flink:force-shading</exclude> <exclude>com.google.code.findbugs:jsr305</exclude> <exclude>org.slf4j:*</exclude> <exclude>log4j:*</exclude> </excludes> </artifactSet> <filters> <filter> <!-- Do not copy the signatures in the META-INF folder. Otherwise, this might cause SecurityExceptions when using the JAR. --> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>${main.class}</mainClass> </transformer> </transformers> </configuration> </execution> </executions>

Thanks again and let me know if there is more information I can provide.

Austin

On Tue, Feb 26, 2019 at 10:59 PM Austin Cawley-Edwards <austin.caw...@gmail.com <mailto:austin.caw...@gmail.com>> wrote:

    Hi,

    I recently experienced versioning clashes with the okio and
    okhttp when trying to deploy a Flink 1.6.0 app to AWS EMR on
    Hadoop 2.8.4. After investigating and talking to the okio team
    (see this issue) <https://github.com/square/okio/issues/559>, I
    found that both okio and okhttp exist in the Flink uber jar with
    versions 1.4.0 and 2.4.0, respectively, whereas I'm including
    versions 2.2.2 and 3.13.1 in my shaded jar. The okio team
    suggested that Flink should shade the uber jar to fix the issue,
    but I'm wondering if there is something I can do on my end to have
    all versions exist simultaneously.

    From the issue, here are the okio contents of the uber jar:

    *jar -tf flink-shaded-hadoop2-uber-1.6.0.jar | grep okio*

    META-INF/maven/com.squareup.okio/
    META-INF/maven/com.squareup.okio/okio/
    META-INF/maven/com.squareup.okio/okio/pom.properties
    META-INF/maven/com.squareup.okio/okio/pom.xml
    okio/
    okio/AsyncTimeout$1.class
    okio/AsyncTimeout$2.class
    okio/AsyncTimeout$Watchdog.class
    okio/AsyncTimeout.class
    okio/Base64.class
    okio/Buffer$1.class
    okio/Buffer$2.class
    okio/Buffer.class
    okio/BufferedSink.class
    okio/BufferedSource.class
    okio/ByteString.class
    okio/DeflaterSink.class
    okio/ForwardingSink.class
    okio/ForwardingSource.class
    okio/ForwardingTimeout.class
    okio/GzipSink.class
    okio/GzipSource.class
    okio/InflaterSource.class
    okio/Okio$1.class
    okio/Okio$2.class
    okio/Okio$3.class
    okio/Okio.class
    okio/RealBufferedSink$1.class
    okio/RealBufferedSink.class
    okio/RealBufferedSource$1.class
    okio/RealBufferedSource.class
    okio/Segment.class
    okio/SegmentPool.class
    okio/SegmentedByteString.class
    okio/Sink.class
    okio/Source.class
    okio/Timeout$1.class
    okio/Timeout.class
    okio/Util.class

    Thank you,
    Austin Cawley-Edwards


Reply via email to