There is no (accurate) reference of included dependencies for the flink-shaded-hadoop uber jars. The contained NOTICE file is a good starting point, but for the time being we're using a generalized version that we apply to all hadoop versions (so some things may be missing).

I believe for hadoop 2.8.4 the following dependencies are contained, based on the output of the maven-shade-plugin:
    com.github.stephenc.jcip:jcip-annotations:1.0-1
    com.google.code.gson:gson:2.2.4
    com.google.guava:guava:11.0.2
    com.google.guava:guava:11.0.2
    com.google.protobuf:protobuf-java:2.5.0
    com.google.protobuf:protobuf-java:2.5.0
    com.jamesmurty.utils:java-xmlbuilder:0.4
    com.jcraft:jsch:0.1.54
    com.nimbusds:nimbus-jose-jwt:4.41.1
    com.squareup.okhttp:okhttp:2.4.0
    com.squareup.okio:okio:1.4.0
    com.sun.jersey:jersey-client:1.9
    com.thoughtworks.paranamer:paranamer:2.7
    commons-beanutils:commons-beanutils:1.9.3
    commons-cli:commons-cli:1.3.1
    commons-codec:commons-codec:1.10
    commons-collections:commons-collections:3.2.2
    commons-configuration:commons-configuration:1.7
    commons-daemon:commons-daemon:1.0.13
    commons-digester:commons-digester:1.8.1
    commons-io:commons-io:2.4
    commons-lang:commons-lang:2.6
    commons-logging:commons-logging:1.1.3
    commons-net:commons-net:3.1
    io.netty:netty-all:4.0.23.Final
    io.netty:netty-all:4.0.23.Final
    io.netty:netty:3.6.2.Final
    io.netty:netty:3.6.2.Final
    javax.activation:activation:1.1
    javax.servlet:servlet-api:2.5
    javax.xml.bind:jaxb-api:2.2.2
    javax.xml.stream:stax-api:1.0-2
    net.java.dev.jets3t:jets3t:0.9.0
    net.java.dev.jets3t:jets3t:0.9.0
    net.minidev:accessors-smart:1.2
    net.minidev:json-smart:2.3
    org.apache.avro:avro:1.8.2
    org.apache.commons:commons-compress:1.18
    org.apache.commons:commons-math3:3.5
    org.apache.curator:curator-client:2.7.1
    org.apache.curator:curator-client:2.7.1
    org.apache.curator:curator-framework:2.7.1
    org.apache.curator:curator-framework:2.7.1
    org.apache.curator:curator-recipes:2.7.1
    org.apache.curator:curator-recipes:2.7.1
    org.apache.directory.api:api-asn1-api:1.0.0-M20
    org.apache.directory.api:api-util:1.0.0-M20
    org.apache.directory.server:apacheds-i18n:2.0.0-M15
    org.apache.directory.server:apacheds-kerberos-codec:2.0.0-M15
    org.apache.hadoop:hadoop-annotations:2.8.4
    org.apache.hadoop:hadoop-annotations:2.8.4
    org.apache.hadoop:hadoop-auth:2.8.4
    org.apache.hadoop:hadoop-auth:2.8.4
    org.apache.hadoop:hadoop-common:2.8.4
    org.apache.hadoop:hadoop-common:2.8.4
    org.apache.hadoop:hadoop-hdfs-client:2.8.4
    org.apache.hadoop:hadoop-hdfs-client:2.8.4
    org.apache.hadoop:hadoop-hdfs:2.8.4
    org.apache.hadoop:hadoop-hdfs:2.8.4
    org.apache.hadoop:hadoop-mapreduce-client-core:2.8.4
    org.apache.hadoop:hadoop-mapreduce-client-core:2.8.4
    org.apache.hadoop:hadoop-yarn-api:2.8.4
    org.apache.hadoop:hadoop-yarn-api:2.8.4
    org.apache.hadoop:hadoop-yarn-client:2.8.4
    org.apache.hadoop:hadoop-yarn-client:2.8.4
    org.apache.hadoop:hadoop-yarn-common:2.8.4
    org.apache.hadoop:hadoop-yarn-common:2.8.4
    org.apache.htrace:htrace-core4:4.0.1-incubating
    org.apache.httpcomponents:httpclient:4.5.3
    org.apache.httpcomponents:httpclient:4.5.3
    org.apache.httpcomponents:httpcore:4.4.6
    org.apache.httpcomponents:httpcore:4.4.6
    org.apache.zookeeper:zookeeper:3.4.10
    org.codehaus.jackson:jackson-core-asl:1.9.13
    org.codehaus.jackson:jackson-core-asl:1.9.13
    org.codehaus.jackson:jackson-jaxrs:1.9.13
    org.codehaus.jackson:jackson-jaxrs:1.9.13
    org.codehaus.jackson:jackson-mapper-asl:1.9.13
    org.codehaus.jackson:jackson-mapper-asl:1.9.13
    org.codehaus.jackson:jackson-xc:1.9.13
    org.codehaus.jackson:jackson-xc:1.9.13
    org.fusesource.leveldbjni:leveldbjni-all:1.8
    org.mortbay.jetty:jetty-sslengine:6.1.26
    org.tukaani:xz:1.5
    org.xerial.snappy:snappy-java:1.1.4
    xerces:xercesImpl:2.9.1
    xml-apis:xml-apis:1.3.04
    xmlenc:xmlenc:0.52

On 28.02.2019 15:54, Austin Cawley-Edwards wrote:
Hi Gary,

No, I am running a YARN session (which I start with: flink-yarn-session --slots 4 --taskManagerMemory 16GB --jobManagerMemory 3GB --detached) and submit jobs through the REST interface. Thank you for the tips - I will probably shade it on my side. Is there an official location that the uber jar dependencies are documented that I can reference for future dependency additions?

Best,
Austin

On Thu, Feb 28, 2019 at 7:13 AM Gary Yao <g...@ververica.com <mailto:g...@ververica.com>> wrote:

    Hi Austin,

    Are you running your job detached in a per-job cluster? In that
    case inverted
    class loading does not work. This is because we add the user jar
    to the system
    class path, and there is no dynamic class loading involved at the
    moment [1].

    You can try the YARN session mode, or – as Chesnay already
    suggested – shade
    the dependency on your side.

    Best,
    Gary

    [1]
    
https://ci.apache.org/projects/flink/flink-docs-release-1.6/monitoring/debugging_classloading.html#overview-of-classloading-in-flink


    On Wed, Feb 27, 2019 at 8:57 PM Austin Cawley-Edwards
    <austin.caw...@gmail.com <mailto:austin.caw...@gmail.com>> wrote:

        Thanks Gary,

        I will try to look into why the child-first strategy seems to
        have failed for this dependency.

        Best,
        Austin

        On Wed, Feb 27, 2019 at 12:25 PM Gary Yao <g...@ververica.com
        <mailto:g...@ververica.com>> wrote:

            Hi,

            Actually Flink's inverted class loading feature was
            designed to mitigate
            problems with different versions of libraries that are not
            compatible with
            each other [1]. You may want to debug why it does not work
            for you.

            You can also try to use the Hadoop free Flink
            distribution, and export the
            HADOOP_CLASSPATH variable [2].

            Best,
            Gary

            [1]
            
https://ci.apache.org/projects/flink/flink-docs-release-1.6/monitoring/debugging_classloading.html#inverted-class-loading-and-classloader-resolution-order
            [2]
            
https://ci.apache.org/projects/flink/flink-docs-release-1.6/ops/deployment/hadoop.html#configuring-flink-with-hadoop-classpaths

            On Wed, Feb 27, 2019 at 5:23 AM 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