Hivesever2无法从elasticsearch-hadoop加载EsStorageHandler类

时间:2014-08-27 09:38:04

标签: java hadoop elasticsearch hive elasticsearch-hadoop

我在hive-site.xml

中有此配置
<property>
  <name>hive.aux.jars.path</name>
  <value>/path/to/elasticsearch-hadoop-2.0.1.jar</value>
</property>

当我将数据映射到HiveCli中的Elasticsearch时,它可以通过以下代码正常工作:

CREATE EXTERNAL TABLE artists (...)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'radio/artists',
              'es.index.auto.create' = 'false')

但是当我在Hive Java Client中使用它时(我启动了Hiveserver2)它抛出了这个异常:

FAILED: Execution Error, return code 1 
  from org.apache.hadoop.hive.ql.exec.DDLTask. 
        org.apache.hadoop.hive.ql.metadata.HiveException: 
  Error in loading storage handler.org.elasticsearch.hadoop.hive.EsStorageHandler

1 个答案:

答案 0 :(得分:1)

在$ HIVE_HOME / lib文件夹中添加elasticsearch-Hadoop-2.0.1.jar文件。

编辑您的查询 - 创建外部表艺术家(...)行格式serde'org.elasticsearch.hadoop.hive.EsSerDe'存储'org.elasticsearch.hadoop.hive.EsStorageHandler'tblproperties('s.resource' ='radio / artists','es.index.auto.create'='false');

希望它可能会有所帮助......