Hivesever2 не может загрузить класс EsStorageHandler из asticsearch-hadoop

У меня есть эта конфигурация в hive-site.xml

<property>
  <name>hive.aux.jars.path</name>
  <value>/path/to/elasticsearch-hadoop-2.0.1.jar</value>
</property>

Когда я сопоставляю данные с Elasticsearch в HiveCli, они корректно работают следующим кодом:

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 ответ

Добавьте файл asticsearch-Hadoop-2.0.1.jar в папку $HIVE_HOME/lib.

Отредактируйте ваш запрос - создайте внешний формат таблицы художника (...) в формате serde 'org.elasticsearch.hadoop.hive.EsSerDe', который хранится в 'org.elasticsearch.hadoop.hive.EsStorageHandler' tblproperties ( 's.resource'='radio/artists','es.index.auto.create' = 'false');

Надеюсь, что это может помочь..

Другие вопросы по тегам