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.
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:
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.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.