# EsHadoopInvalidRequest: \[POST\]

**URL:** <https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635>\
**Category:** Elasticsearch\
**Tags:** es-hadoop\
**Created:** [October 5, 2015, 1:35pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635 "2015-10-05T13:35:32Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sar82](https://avatars.discourse-cdn.com/v4/letter/s/8491ac/32.png) [@Sar82](https://discuss.elastic.co/u/Sar82)\
**Post date:** [October 5, 2015, 1:35pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/1 "2015-10-05T13:35:32Z")

</div>

Hello I am trying to read data from ElasticSearch. My Code is as follows,

```
	SparkConf sparkConf = new SparkConf()
			.setAppName("Spark ES Integration").setMaster("local");
	// .set("spark.ui.port", "7077");
	sparkConf.set("es.nodes", "xx.xx.xx.xx");
	sparkConf.set("es.port", "9200");
	sparkConf.set("es.resource", "blog/post");
	sparkConf.set("es.query", "?q=user:dilbert");
	JavaSparkContext sc = new JavaSparkContext(sparkConf);

	JavaPairRDD<String, Map<String, Object>> esRDD = JavaEsSpark.esRDD(sc);
	System.out.println(" **********" + esRDD.count()); // Prints 1 - Only one record is present
	System.out.println(" **********" + esRDD.first()); // Throws exception 

```

Program outputs count correctly but throws exception when first record fetched from RDD.  
Why request is of type POST when I just want to read the data?  
What is wrong here? Query mentioned in configuration executes correctly.

Exception is

```
 org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: [POST] on [blog/post/_search?search_type=scan&scroll=5m&size=50&preference=_shards:0;_only_node:03oYNb7BTjG2vOzo9lSnzQ] failed; server[null] returned [400|Bad Request:]
.
.
3091 [Executor task launch worker-0] ERROR org.apache.spark.executor.Executor - Exception in task 0.0 in stage 0.0 (TID 0)
org.apache.spark.util.TaskCompletionListenerException: [POST] on [blog/post/_search?search_type=scan&scroll=5m&size=50&preference=_shards:0;_only_node:03oYNb7BTjG2vOzo9lSnzQ] failed; server[null] returned [400|Bad Request:]
.
.
3099 [task-result-getter-0] WARN org.apache.spark.scheduler.TaskSetManager - Lost task 0.0 in stage 0.0 (TID 0, localhost): org.apache.spark.util.TaskCompletionListenerException: [POST] on [blog/post/_search?search_type=scan&scroll=5m&size=50&preference=_shards:0;_only_node:03oYNb7BTjG2vOzo9lSnzQ] failed; server[null] returned [400|Bad Request:]
```

---

<div class="post-metadata">

**Author:** ![costin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/costin/32/44950_2.png) [@costin](https://discuss.elastic.co/u/costin)\
**Post date:** [October 5, 2015, 3:36pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/2 "2015-10-05T15:36:56Z")

</div>

What version of Elasticsearch and ES-Spark are you using?  
POST is used instead of GET to get around some encoding issues with large URIs (basically the search request is passed in the body instead of the URI).

Likely there's something else in the request that causes the 400.  
Potentially you can [enable logging](https://www.elastic.co/guide/en/elasticsearch/hadoop/master/logging.html) on the REST package to see what requests are made and what causes the exception.

---

<div class="post-metadata">

**Author:** ![Sar82](https://avatars.discourse-cdn.com/v4/letter/s/8491ac/32.png) [@Sar82](https://discuss.elastic.co/u/Sar82)\
**Post date:** [October 6, 2015, 4:47am UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/3 "2015-10-06T04:47:24Z")

</div>

ElasticSearch version is 1.7  
ES-Hadoop version is 2.2.0

---

<div class="post-metadata">

**Author:** ![costin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/costin/32/44950_2.png) [@costin](https://discuss.elastic.co/u/costin)\
**Post date:** [October 6, 2015, 1:10pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/4 "2015-10-06T13:10:28Z")

</div>

I assume that is 2.2-m1. Can you please post the log as a gist somewhere? Thanks,

---

<div class="post-metadata">

**Author:** ![Sar82](https://avatars.discourse-cdn.com/v4/letter/s/8491ac/32.png) [@Sar82](https://discuss.elastic.co/u/Sar82)\
**Post date:** [October 8, 2015, 9:47am UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/5 "2015-10-08T09:47:11Z")

</div>

Hello costin, I managed to resolve my issue. The basic problem was I was executing my program on windows 32 bit machine and I was having 64 bit Winutils.exe. I migrated my code to linux machine. Now it works fine. Thanks for ur help!

---

<div class="post-metadata">

**Author:** ![costin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/costin/32/44950_2.png) [@costin](https://discuss.elastic.co/u/costin)\
**Post date:** [October 8, 2015, 12:14pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/6 "2015-10-08T12:14:44Z")

</div>

Why was `Winutils.exe` used by Spark or Hadoop? And how did it affect the REST requests?

---

<div class="post-metadata">

**Author:** ![Sar82](https://avatars.discourse-cdn.com/v4/letter/s/8491ac/32.png) [@Sar82](https://discuss.elastic.co/u/Sar82)\
**Post date:** [October 13, 2015, 2:15pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/7 "2015-10-13T14:15:27Z")

</div>

> [@costin](#):
>
> d how did it affect the REST requests?

Actually I am executing it on Windows machine. The same code executes fine on Linux VM.  
Thanks for the help

---

<div class="post-metadata">

**Author:** ![costin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/costin/32/44950_2.png) [@costin](https://discuss.elastic.co/u/costin)\
**Post date:** [October 13, 2015, 2:22pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/8 "2015-10-13T14:22:09Z")

</div>

This is weird. I do development and testing on Windows and things run fine. The CI builds on Linux - there should be no difference between the two OS.  
Something else is at hand. Either way, I'm glad to see things are working out.

---

<div class="post-metadata">

**Author:** ![Pinhus\_Dash](https://avatars.discourse-cdn.com/v4/letter/p/b9bd4f/32.png) [@Pinhus\_Dash](https://discuss.elastic.co/u/Pinhus_Dash)\
**Post date:** [December 14, 2015, 5:04pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/9 "2015-12-14T17:04:49Z")

</div>

I am having similar issues with the ES Spark Connector.

When I connect to a remote 1 machine ES cluster, I can read the schema from ES.  
Example:  
val spark14DF = sqlContext.read.format("org.elasticsearch.spark.sql").options(optionsDev).load("blog/post")

spark14DF: org.apache.spark.sql.DataFrame = [body: string, postDate: timestamp, title: string, user: string]

spark14DF.printSchema  
root  
|-- body: string (nullable = true)  
|-- postDate: timestamp (nullable = true)  
|-- title: string (nullable = true)  
|-- user: string (nullable = true)

But when I ask for spark14DF.first()  
I get the following error:  
org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: IndexMissingException[[blog] missing]  
at org.elasticsearch.hadoop.rest.RestClient.execute(RestClient.java:352)  
.....

---

<div class="post-metadata">

**Author:** ![costin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/costin/32/44950_2.png) [@costin](https://discuss.elastic.co/u/costin)\
**Post date:** [December 18, 2015, 12:37pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/10 "2015-12-18T12:37:49Z")

</div>

@Pinhus_Dash Can you please open up a separate thread or potentially issue on Github? More information [here](https://www.elastic.co/guide/en/elasticsearch/hadoop/master/troubleshooting.html)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:26pm UTC](https://discuss.elastic.co/t/eshadoopinvalidrequest-post/31635/11 "2017-07-06T13:26:54Z")

</div>


