Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EsHadoopIllegalArgumentException: Cannot detect ES version #794

Closed
ankitkothana opened this issue Jun 27, 2016 · 1 comment
Closed

EsHadoopIllegalArgumentException: Cannot detect ES version #794

ankitkothana opened this issue Jun 27, 2016 · 1 comment

Comments

@ankitkothana
Copy link

Hi,

I am trying to integrate Hive with elastic search. Below are the steps I followed:

  1. Downloaded elasticsearch-hadoop-hive-2.3.0.jar and elasticsearch-hadoop-2.3.0.jar and placed under $HIVE_HOME/lib directory.
  2. Create an external table:
create external table report_es (
imps INT,
ad_network_id INT,
pg_placement_id STRING,
placement_id STRING,
site_id STRING,
ad_type INT,
app_id INT,
total_revenue FLOAT,
cost FLOAT,
imps_sold INT,
response INT,
publisher_id STRING,
clicks INT,
day STRING
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'dailyreports/report', 'es.nodes' = 'AWS end point', 'es.nodes.wan.only' = 'true');

However when I try to query over this table I get below error:

hive> select * from report_es limit 10;
OK
Failed with exception java.io.IOException:org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Cannot detect ES version - typically this happens when accessing a WAN/Cloud instance without the proper setting 'es.nodes.wan.only'
Time taken: 0.447 seconds

While creating table I am specifying es.nodes.wan.only as true, but still it is getting ignored. Could you please help resolve my problem?

@costin
Copy link
Member

costin commented Jun 27, 2016

  1. use only one of the two jars, not both. They overlap and lead to strange errors. Also use the latest version (2.3.2)
  2. unless you specify the ports, ES-Hadoop expects ES to run on port 9200. Which needs to be opened (that is your AWS host needs to accept connections from your current address) - typically at least of these two things (port and firewall connection) is not in place hence why ES-Hadoop cannot connect to your ES host.

P.S. Next time, please post on the forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants