On an empty machine (with Ubuntu 14.04.5 LTS) and an empty maven local repo
I did:

   1. git clone https://github.com/apache/flink.git && cd flink && git
   checkout tags/release-1.2.1
   2. /opt/devel/apache-*maven-3.3.9*/bin/mvn clean install
   -Dhadoop.version=2.6.0-cdh5.9.0 -Dhbase.version=1.2.0-cdh5.9.0
   -Dhadoop.core.version=2.6.0-mr1-cdh5.9.0 -DskipTests -Pvendor-repos
   3. cd flink-dist
   4. /opt/devel/apache-maven-3.3.9/bin/mvn clean install
   -Dhadoop.version=2.6.0-cdh5.9.0 -Dhbase.version=1.2.0-cdh5.9.0
   -Dhadoop.core.version=2.6.0-mr1-cdh5.9.0 -DskipTests -Pvendor-repos
   5. jar tf target/flink-1.2.1-bin/flink-1.2.1/lib/flink-dist_2.10-1.2.1.jar
    | grep MoreExecutors

And I still see guava dependencies:

org/apache/flink/hadoop/shaded/com/google/common/util/
concurrent/MoreExecutors$1.class
org/apache/flink/hadoop/shaded/com/google/common/util/
concurrent/MoreExecutors$SameThreadExecutorService.class
org/apache/flink/hadoop/shaded/com/google/common/util/
concurrent/MoreExecutors$ListeningDecorator.class
org/apache/flink/hadoop/shaded/com/google/common/util/
concurrent/MoreExecutors$ScheduledListeningDecorator.class
org/apache/flink/hadoop/shaded/com/google/common/util/
concurrent/MoreExecutors.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$1.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$2.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$3.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$4.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$Application$1.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$Application.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors$DirectExecutor.class
org/apache/flink/shaded/com/google/common/util/concurrent/MoreExecutors$
DirectExecutorService.class
org/apache/flink/shaded/com/google/common/util/concurrent/MoreExecutors$
ListeningDecorator.class
org/apache/flink/shaded/com/google/common/util/concurrent/MoreExecutors$
ScheduledListeningDecorator$ListenableScheduledTask.class
org/apache/flink/shaded/com/google/common/util/concurrent/MoreExecutors$
ScheduledListeningDecorator$NeverSuccessfulListenableFutureTask.class
org/apache/flink/shaded/com/google/common/util/concurrent/MoreExecutors$
ScheduledListeningDecorator.class
org/apache/flink/shaded/com/google/common/util/concurrent/
MoreExecutors.class
com/google/common/util/concurrent/MoreExecutors$1.class
com/google/common/util/concurrent/MoreExecutors$SameThreadExecutorService.
class
com/google/common/util/concurrent/MoreExecutors$ListeningDecorator.class
com/google/common/util/concurrent/MoreExecutors$ScheduledListeningDecorator.
class
com/google/common/util/concurrent/MoreExecutors.class

It seems that it mix togheter guava 11 (probably coming from CDH
dependencies) and guava 18 classes.

Also using *maven 3.0.5* lead to the same output :(

Best,
Flavio

On Wed, Jun 7, 2017 at 6:21 PM, Tzu-Li (Gordon) Tai <tzuli...@apache.org>
wrote:

> Yes, those should not be in the flink-dist jar, so the root reason should
> be that the shading isn’t working properly for your custom build.
>
> If possible, could you try building Flink again with a lower Maven version
> as specified in the doc, and see if that works?
> If so, it could be that Maven 3.3.x simply isn’t shading properly even
> with the double compilation trick.
>
>
> On 7 June 2017 at 6:17:15 PM, Flavio Pompermaier (pomperma...@okkam.it)
> wrote:
>
> What I did was to take the sources of the new ES connector and I took them
> into my code.
> Flink was compiled with maven 3.3+ but I did the double compilation as
> specified in the Flink build section.
> In flink dist I see guava classes, e.g.:
>
> com/google/common/util/concurrent/MoreExecutors$1.class
> com/google/common/util/concurrent/MoreExecutors$SameThreadExecutorService.
> class
> com/google/common/util/concurrent/MoreExecutors$ListeningDecorator.class
> com/google/common/util/concurrent/MoreExecutors$
> ScheduledListeningDecorator.class
> com/google/common/util/concurrent/MoreExecutors.class
>
> Is it a problem of the shading with Maven 3.3+?
>
> Best,
> Flavio
>
> On Wed, Jun 7, 2017 at 5:48 PM, Tzu-Li (Gordon) Tai <tzuli...@apache.org>
> wrote:
>
>> Ah, I assumed you were running 1.3.0 (since you mentioned “new” ES
>> connector).
>>
>> Another thing to check, if you built Flink yourself, make sure you’re not
>> using Maven 3.3+. There are shading problems when Flink is built with Maven
>> versions higher then that.
>> The flink-dist jar should not contain any non-shaded Guava dependencies,
>> could you also quickly check that?
>>
>> On 7 June 2017 at 5:42:28 PM, Flavio Pompermaier (pomperma...@okkam.it)
>> wrote:
>>
>> I shaded the Elasticsearch dependency [1] and now the job works.
>> So I cannot run a job that needs guava 18 on Flink 1.2.1...
>>
>> [1]  https://www.elastic.co/blog/to-shade-or-not-to-shade
>>
>> On Wed, Jun 7, 2017 at 5:33 PM, Tzu-Li (Gordon) Tai <tzuli...@apache.org>
>> wrote:
>>
>>> Hi Flavio,
>>>
>>> Could there be another dependency in your job that requires a
>>> conflicting version (w.r.t. ES 2.4.1) of Guava?
>>> I’ve just double checked the flink-dist jar, there doesn’t seem to be
>>> any non-shaded Guava dependencies there, so the conflict should not have
>>> been caused by Flink.
>>>
>>> Cheers,
>>> Gordon
>>>
>>>
>>> On 7 June 2017 at 4:12:04 PM, Flavio Pompermaier (pomperma...@okkam.it)
>>> wrote:
>>>
>>> Hi to all,
>>> I'm trying to use the new ES connector to index data from Flink (with ES
>>> 2.4.1).
>>> When I try to run it from Eclipse everything is ok, when I run it from
>>> the cluster I get the following exception:
>>>
>>> java.lang.NoSuchMethodError: com.google.common.util.concurr
>>> ent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
>>>         at org.elasticsearch.threadpool.ThreadPool.<clinit>(ThreadPool.
>>> java:192)
>>>         at org.elasticsearch.client.transport.TransportClient$Builder.b
>>> uild(TransportClient.java:131)
>>>
>>> In my fat jar there are the classes of guava 18 (ES requires that
>>> version), Flink runs on CDH 5.9 (that use guava 11), in flink-dist jar I
>>> think that there's guava 11 classes while in flink-hadoop-compatibility
>>> there are shade guava 18 dependencies.
>>>
>>> How can I make the job successfully run on the cluster?
>>>
>>> Best,
>>> Flavio
>>>
>>>
>>

Reply via email to