Elasticsearch version compatibility

I downloaded dremio and install in my centos server which also hosted my elasticsearch.
When i access the localhost:9047 in the browser and added the elasticsearch as a source,
there’s no datasets found in my elasticsearch.

BUT, i do have another elasticsearch server which holds the latest elasticsearch (5.5) it currently working well.

BTW, the one that doesn’t work is elasticsearch(5.4).

I don’t know if it is the problem in versioning, or there are some issues with regards to my elasticsearch config.

Hoping for your feedback.

TIA

Hi @joginar10

I was able to add a 5.4 elastic search server in Dremio and work with the datasets. The same server hosted both dremio and elastic server.
Do you see any errors in the Dremio-DIR/log/server.log ? If so, please share.

Please note that “advanced options” for the source allows you to configure the metadata refresh intervals. The default is 30 minutes.

Hello @benoy.

Thanks for your reply.

Hmm… Where can i find that /log/server.log?
I installed dremio in my Linux OS Machine.

It will be at DREMIO-INSTALL- DIR/log/server.log

1 Like

This is not the complete logs. This is from the last few lines of the log.

 at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) ~[na:1.8.0_131]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:228) ~[jersey-common-2.23.2.jar:na]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) ~[na:1.8.0_131]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:228) ~[jersey-common-2.23.2.jar:na]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) ~[na:1.8.0_131]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:228) ~[jersey-common-2.23.2.jar:na]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) ~[na:1.8.0_131]
        at com.dremio.plugins.elastic.ElasticConnectionPool.access$500(ElasticConnectionPool.java:80) [dremio-elasticsearch-plugin-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
        at com.dremio.plugins.elastic.ElasticConnectionPool$ElasticConnection.executeAndHandleResponseCode(ElasticConnectionPool.java:477) [dremio-elasticsearch-plugin-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
        at com.dremio.plugins.elastic.ElasticsearchStoragePlugin2.getState(ElasticsearchStoragePlugin2.java:223) [dremio-elasticsearch-plugin-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
        at com.dremio.exec.store.CatalogServiceImpl$NamespaceUpdateThread.refreshSourceStates(CatalogServiceImpl.java:505) [dremio-sabot-kernel-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
        at com.dremio.exec.store.CatalogServiceImpl$NamespaceUpdateThread.run(CatalogServiceImpl.java:546) [dremio-sabot-kernel-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
Caused by: javax.ws.rs.ProcessingException: java.net.SocketException: Network is unreachable (connect failed)
        at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287) ~[jersey-client-2.23.2.jar:na]
        at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252) ~[jersey-client-2.23.2.jar:na]
        at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:701) ~[jersey-client-2.23.2.jar:na]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[jersey-common-2.23.2.jar:na]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[jersey-common-2.23.2.jar:na]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:228) ~[jersey-common-2.23.2.jar:na]
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) ~[jersey-common-2.23.2.jar:na]
        at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:697) ~[jersey-client-2.23.2.jar:na]
        at com.dremio.plugins.elastic.ElasticActions$Health.getResult(ElasticActions.java:151) ~[dremio-elasticsearch-plugin-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
        at com.dremio.plugins.elastic.ElasticConnectionPool$ElasticConnection.executeAndHandleResponseCode(ElasticConnectionPool.java:475) [dremio-elasticsearch-plugin-1.0.8-201707190805180330-27f36e1.jar:1.0.8-201707190805180330-27f36e1]
        ... 3 common frames omitted
Caused by: java.net.SocketException: Network is unreachable (connect failed)
        at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_131]
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_131]
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_131]
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_131]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_131]
        at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_131]
        at sun.net.NetworkClient.doConnect(NetworkClient.java:175) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_131]
        at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546) ~[na:1.8.0_131]
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474) ~[na:1.8.0_131]
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[na:1.8.0_131]
        at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394) ~[jersey-client-2.23.2.jar:na]
        at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285) ~[jersey-client-2.23.2.jar:na]
        ... 12 common frames omitted
2017-08-11 09:14:07,835 [metadata-refresh] INFO  c.d.exec.store.CatalogServiceImpl - Ignoring metadata load for source AWSPH since it is currently in a bad state.

This what looks like in the dashboard.
There’s no Datasets in AWSPH.

This means that Dremio cannot connect to the ES server. Could you please make sure that you can reach ES Server from the Dremio Host ? You can use a command like
curl ‘http://elastic-search-host:9200/?pretty’

Yes. I could connect to elasticsearch.
Hmmm… I also try to use ‘localhost’ in my connection. But still it does not work.

Could you please share a screenshot of the AWSPH source > details page ?

It will be great if you could share the curl command used to test the connectivity between Dremio HOST and ES server . And its output.

dremioCapture3

Here it is. :smiley:

@joginar10,

I see that both the servers (Dremio and elastic ) are on the same host.
I wanted to confirm that you have run the command to access the Elastic Server from the DREMIO HOST. You can use curl to do that.
You can try both localhost:9020 and the 192.168.200.254:9020.

In addition , to avoid any one time issues, try deleting the erroneous source and add it again.

thanks and regards,
Benoy

I check the connection for elasticsearch i use localhost:9200
Why do i need to check at port 9020?

Thanks for your reply btw @benoy.

Hello @benoy,

I just solve this issue.
Thanks for your help :smiley:

2 Likes

@joginar10, Glad to know that the issue is resolved. What was the issue ?

My mistake. It should be 9200.

I just ugrade my elasticsearch to 5.5.
i dont know why my es 5.4 wont work. :thinking:

@joginar10 if you are up for it it would be great to take a look at what’s in the Dremio elasticsearch request logs when attempting to connect to Elasticsearch 5.4. To do this:

  • Add the following in <dremio-home>/conf/logback.xml on the coordinator node:
 <appender name="elasticoutput" class="ch.qos.logback.core.rolling.RollingFileAppender">
   <file>${dremio.log.path}/elastic.log</file>
   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
     <fileNamePattern>${dremio.log.path}/archive/elastic.%d{yyyy-MM-dd}.log.gz
     </fileNamePattern>
     <maxHistory>30</maxHistory>
   </rollingPolicy>
   <encoder>
     <pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg%n
     </pattern>
   </encoder>
 </appender>

 <logger name="elastic.requests" additivity="false">
   <level value="info"/>
   <appender-ref ref="elasticoutput"/>
 </logger>
  • Restart Dremio
  • Try connecting to Elasticsearch 5.4

I’m sorry @can, i can’t try this since i already upgrade my ES client to 5.5.