I was able to create the External table. But now I am getting an issue in 
loading the data in the table. I did specify the “es.resources” in the external 
table so I am not sure why this error is coming.

External Table:
create external table ex_address (name String, st_no INT, st_name string, city 
string, state string, zip INT) stored by 
'org.elasticsearch.hadoop.hive.EsStorageHandler' tblproperties('es.resources' = 
'employee/address'

Insert Statement:
insert overwrite table ex_address select name, st_no, st_name, city, state, zip 
from employee.address;

Hive Logs:
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: No resource 
['es.resource'] (index/query/location) specified
        at org.elasticsearch.hadoop.util.Assert.hasText(Assert.java:30)
        at 
org.elasticsearch.hadoop.mr.EsOutputFormat.init(EsOutputFormat.java:336)
        at 
org.elasticsearch.hadoop.mr.EsOutputFormat.checkOutputSpecs(EsOutputFormat.java:330)
        at 
org.apache.hadoop.hive.ql.exec.FileSinkOperator.checkOutputSpecs(FileSinkOperator.java:951)
        at 
org.apache.hadoop.hive.ql.io.HiveOutputFormatImpl.checkOutputSpecs(HiveOutputFormatImpl.java:67)
        at 
org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:460)
        at 
org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:343)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
        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:1614)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562)
        at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:557)
        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:1614)
        at 
org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557)
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548)
        at 
org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:420)
        at 
org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:136)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
        at 
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1503)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1270)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1088)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
        at 
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
        at 
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
       at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Job Submission failed with exception 
'org.elasticsearch.hadoop.EsHadoopIllegalArgumentException(No resource 
['es.resource'] (index/query/location) specified)'
FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.mr.MapRedTask
hive>

From: Edward Capriolo [mailto:edlinuxg...@gmail.com]
Sent: Thursday, November 27, 2014 7:43 AM
To: user@hive.apache.org
Subject: Re: Can't integrate Elasticsearch with Hive

https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessError.html
Likley this means the storage handler was built against a different version of 
hive or one of the dependencies of the two has changed in an incompatible way. 
E.G. (ES) antlr 2.5 vs (hive) antlr 2.6 or some other dependency.

On Thu, Nov 27, 2014 at 2:58 AM, Atul Paldhikar (apaldhik) 
<apald...@cisco.com<mailto:apald...@cisco.com>> wrote:
Hi All,

I am using Hive 0.13.1 and Hadoop 2.5.1 and trying to create an external table 
so data can me loaded from Hive to Elasticsearch. However I keep getting the 
following error. I have tried with following jars but same error. I will really 
appreciate for any pointers.

Thanks
- Atul

<property>
  <name>hive.aux.jars.path</name>
<!--
  
<value>/apps/sas/elasticsearch-hadoop-2.0.2/dist/elasticsearch-hadoop-2.0.2.jar</value>
-->
  
<value>/apps/sas/elasticsearch-hadoop-2.1.0.Beta3/dist/elasticsearch-hadoop-2.1.0.Beta3.jar</value>
  <description>A comma separated list (with no spaces) of the jar 
files</description>
</property>

ERROR :

2014-11-26 23:09:22,069 ERROR [main]: exec.DDLTask (DDLTask.java:execute(478)) 
- java.lang.IllegalAccessError: tried to access class 
org.elasticsearch.hadoop.hive.HiveUtils from class 
org.elasticsearch.hadoop.hive.EsSerDe
        at org.elasticsearch.hadoop.hive.EsSerDe.initialize(EsSerDe.java:81)
        at 
org.apache.hadoop.hive.metastore.MetaStoreUtils.getDeserializer(MetaStoreUtils.java:339)
        at 
org.apache.hadoop.hive.ql.metadata.Table.getDeserializerFromMetaStore(Table.java:288)
        at 
org.apache.hadoop.hive.ql.metadata.Table.getDeserializer(Table.java:281)
        at org.apache.hadoop.hive.ql.metadata.Table.getCols(Table.java:631)
        at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:593)
        at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:4189)
        at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:281)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
        at 
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1503)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1270)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1088)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
        at 
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
        at 
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

2014-11-26 23:09:22,069 ERROR [main]: ql.Driver 
(SessionState.java:printError(545)) - FAILED: Execution Error, return code 1 
from org.apache.hadoop.hive.ql.exec.DDLTask. tried to access class 
org.elasticsearch.hadoop.hive.HiveUtils from class 
org.elasticsearch.hadoop.hive.EsSerDe


Reply via email to