Client-only routing specified but no client nodes with HTTP-enabled available

Hi,
I am using Elastic Search(ES) 1.4 and Hortonworks 2.1.5(Yarn for
MapReduce2+). I am still getting my feet wet in ES.
I have a ES cluster with 3 client nodes(non data and master). Initially, i
encountered this issue:

To resolve Issue#373, I downloaded the nightly build that has the fix. I
have set es.nodes.discovery to false and es.nodes.client.only to true. Now,
i am getting this error message:

2015-03-01 10:13:54,117 WARN [main] org.apache.hadoop.mapred.YarnChild: Exception running child : org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Client-only routing specified but no client nodes with HTTP-enabled available; node discovery is disabled and none of nodes specified fits the criterion
[clientapp1:9200, clientapp2:9200, clientapp3:9200]
at org.elasticsearch.hadoop.rest.InitializationUtils.filterNonClientNodesIfNeeded(InitializationUtils.java:103)
at org.elasticsearch.hadoop.rest.RestService.createWriter(RestService.java:372)
at org.elasticsearch.hadoop.mr.EsOutputFormat$EsRecordWriter.init(EsOutputFormat.java:173)
at org.elasticsearch.hadoop.mr.EsOutputFormat$EsRecordWriter.write(EsOutputFormat.java:149)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:635)
at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:112)
at com.truecar.hadoop.inventory.FailReport$FailReportMapper.map(FailReport.java:42)
at com.truecar.hadoop.inventory.FailReport$FailReportMapper.map(FailReport.java:22)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)

I have verified that the cluster is running in healthy state and those 3 nodes have
http": {"enabled": "true","cors": {"enabled": "true"}}.
Can anyone guide me what could be wrong over here. Do i need to add other properties in my job client nodes.
Please let me know if any additional information is required.

I added this dependency in my project:

org.elasticsearch
elasticsearch-hadoop-mr
2.1.0.BUILD-SNAPSHOT

Thanks,
Anil Gupta

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/ff8ea773-9ae3-4b6e-b2c1-43a16dd09b19%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

After changing es.nodes.discovery=true, my job started working. I am not
sure how it fixed my problem. If someone can briefly explain this behavior,
it would be of great help.

On Sunday, March 1, 2015 at 7:49:05 PM UTC-8, anil gupta wrote:

Hi,
I am using Elastic Search(ES) 1.4 and Hortonworks 2.1.5(Yarn for
MapReduce2+). I am still getting my feet wet in ES.
I have a ES cluster with 3 client nodes(non data and master). Initially, i
encountered this issue:
[Spark]Is there a way to make elasticsearch-hadoop stick to the load-balancer(client), instead of going trying to ping all the data nodes? · Issue #373 · elastic/elasticsearch-hadoop · GitHub

To resolve Issue#373, I downloaded the nightly build that has the fix. I
have set es.nodes.discovery to false and es.nodes.client.only to true.
Now, i am getting this error message:

2015-03-01 10:13:54,117 WARN [main] org.apache.hadoop.mapred.YarnChild: Exception running child : org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Client-only routing specified but no client nodes with HTTP-enabled available; node discovery is disabled and none of nodes specified fits the criterion
[clientapp1:9200, clientapp2:9200, clientapp3:9200]
at org.elasticsearch.hadoop.rest.InitializationUtils.filterNonClientNodesIfNeeded(InitializationUtils.java:103)
at org.elasticsearch.hadoop.rest.RestService.createWriter(RestService.java:372)
at org.elasticsearch.hadoop.mr.EsOutputFormat$EsRecordWriter.init(EsOutputFormat.java:173)
at org.elasticsearch.hadoop.mr.EsOutputFormat$EsRecordWriter.write(EsOutputFormat.java:149)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:635)
at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89)
at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:112)
at com.truecar.hadoop.inventory.FailReport$FailReportMapper.map(FailReport.java:42)
at com.truecar.hadoop.inventory.FailReport$FailReportMapper.map(FailReport.java:22)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)

I have verified that the cluster is running in healthy state and those 3 nodes have
http": {"enabled": "true","cors": {"enabled": "true"}}.
Can anyone guide me what could be wrong over here. Do i need to add other properties in my job client nodes.
Please let me know if any additional information is required.

I added this dependency in my project:

org.elasticsearch
elasticsearch-hadoop-mr
2.1.0.BUILD-SNAPSHOT

Thanks,
Anil Gupta

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/c841bc4a-b68c-47d0-8df1-0fdf287f4256%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.