ES 1.6 - Integration test NOT in local mode (with http)


(Kamil Dziubliński) #1

Hi,

I am using your ElasticsearchIntegrationTest class to test my MR job. In 1.4.2 there was no problem to get http address from cluster.

This method returned me what I needed to provide to my MR job:
InetSocketAddress inetSocketAddress = cluster().httpAddresses()[0];

Now I upgraded to 1.6.0 and it seems the cluster is starting all nodes in local mode and the same method throws GuiceConfiguration error:
org.elasticsearch.common.inject.ConfigurationException: Guice configuration errors:

  1. No implementation for org.elasticsearch.http.HttpServerTransport was bound.
    while locating org.elasticsearch.http.HttpServerTransport

The error itself of course makes sense cause all nodes are local.

The question is how can I now get http address and port so that I could still use it with my MR job.
Do I have to give some extra settings so that this integration test will create not local nodes?

Thanks for any help.

Cheers,
Kamil.


(Thibaultclem) #2

Hi Kamil,
I encountered the same issue.
Did you finally find a way to manage this ?
Thanks,
Thibaullt


(Kamil Dziubliński) #3

Hi,

Sorry for late reply. I solved that problem by getting away from their class, I wasn’t able to make it work the way I wanted.
Right now I’m just starting a node using nodeBuilder and setting local to false.

Then later just publishing http address. If you will need some code sample how to do it let me know.

Cheers,
Kamil.


(Thibaultclem) #4

Thanks but like you I finally managed it


(system) #5