Client-only routing specified but no client nodes with HTTP-enabled were found in the cluster


(saklar) #1

Hİ,

We have elasticsearch 6.5.4 version and Cloudera 5.4.7-1 version. We installed elasticsearch-hadoop-2.1.1.jar to connect between hdfs and elasticsearch. Then the hive table below were created to fetch the data from elasticsearch.

CREATE EXTERNAL TABLE TEST_ES_TBL (
    st      string)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.nodes' = '10.51.29.105', 'es.port' = '9200', 'es.resource' = 'test/docs',
              'es.mapping.names' = 'st: str', 'es.index.auto.create'='true'); 

But it gives the error like that;

java.io.IOException: org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Client-only routing specified but no client nodes with HTTP-enabled were found in the cluster...

We also set the "es.nodes.client.only" = "true" but nothing happens. Can you help us to solve the problem, please? What is the point we miss?

Any help would be appreciated. Thanks.


(James Baiera) #2

I would double check your hive and hadoop settings to see if there are any properties that enable client-only routing. Something in the deployment is setting that property and it's getting into the storage handler, thus causing errors in the submission of the query.


(saklar) #3

Is there any suggestion to look a specific parameter or settings file to find out the error?

I'm looking to elasticsearch.yml but nothing found.

Thanks.


(James Baiera) #4

These would be settings in your Hadoop configurations or in your Hive configurations