2016-04-28 3 views
0

Я создал UDF и экспортировал банку как abc.jar.Добавление JAR в Hive дает ошибку, поскольку «Запрос возвратил ненулевой код: 1, причина: /user/hive/warehouse/abc.jar не существует».

Скопировал банку в hdfs на/пользователь/улей/склад.

Теперь я получаю ниже ошибки:

hive> ADD JAR /user/hive/warehouse/abc.jar; 
/user/hive/warehouse/abc.jar does not exist 
Query returned non-zero code: 1, cause: /user/hive/warehouse/abc.jar does not exist. 
hive> 

Когда я, hadoop fs -ls /user/hive, я могу видеть abc.jar в /пользователя/улей/склад путь.

Где я делаю неправильно и для чего это решение?

+0

Поместите UDF банку в локальной файловой системе клиент-машина улья и дать абсолютный локальный путь в банке в команде ADD JAR –

ответ

1

Когда вы добавляете банку из HDFS использовать следующее заявление:

ADD jar hdfs://namenode/user/hive/warehouse/abc.jar; 

вы не уведомляющее, что вы добавляете банку с HDFS. Это и есть причина вашей ошибки.

Надежда, что помогает

+0

спасибо. он работал – earl

0

Они, как вы упоминаете путь, он будет выглядеть файл в локальной файловой системе.
Либо поместить его туда, или использовать HDFS: // нравится эта

hive> ADD JAR /user/hive/warehouse/abc.jar => local filesystem 
hive> ADD JAR hdfs://namenodei/user/hive/warehouse/abc.jar => In hdfs 
+0

Спасибо. Он работал, используя оба способа ответа – earl

0

выше опции действительны только для текущих сеансов. Поэтому каждый раз вам нужно писать ADD JAR. Чтобы добавить его на постоянной основе, рекомендуются следующие способы.

  1. добавить в улье-site.xml

    <property> <name>hive.aux.jars.path</name> <value>file://localpath/yourjar.jar</value> </property>

  2. Скопируйте и вставьте файл JAR в папку ${HIVE_HOME}/auxlib/

+0

не стремится ответить на вопрос OP. – SrinivasR