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