код возврата ошибки выполнения улья 2 из org.apache.hadoop.hive.ql.exec.mapredtask

У меня есть один запрос. Он отлично работает в Hive CLI и возвращает результат. Но когда я выполняю его с помощью Hive JDBC, я получаю следующую ошибку:

java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
    at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:192)

В чем проблема? Также я запускаю сервер Hive Thrift через сценарий оболочки. (Я написал сценарий оболочки, в котором есть команда для запуска Hive Thrift Server). Позже я решил запустить Hive Thrift Server вручную, введя команду:

hadoop@ubuntu:~/hive-0.7.1$ bin/hive --service hiveserver
Starting Hive Thrift Server
org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:10000.
    at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:99)
    at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:80)
    at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:73)
    at org.apache.hadoop.hive.service.HiveServer.main(HiveServer.java:384)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:186)

hadoop@ubuntu:~/hive-0.7.1$

Пожалуйста, помогите мне выбраться из этого. Спасибо


person Bhavesh Shah    schedule 10.05.2012    source источник
comment
Эй, я получаю точно такую ​​же ошибку. Можете ли вы опубликовать свое решение, пожалуйста?   -  person Nishant Kelkar    schedule 31.10.2014


Ответы (2)


Для этой ошибки:
java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuer

Перейдите по этой ссылке:

http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_Hive.html

и добавить

**hadoop-0.20-core.jar
hive/lib/hive-exec-0.7.1.jar
hive/lib/hive-jdbc-0.7.1.jar
hive/lib/hive-metastore-0.7.1.jar
hive/lib/hive-service-0.7.1.jar
hive/lib/libfb303.jar
lib/commons-logging-1.0.4.jar    
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar**

в путь к классам вашего проекта добавьте эти jar-файлы из библиотеки Hadoop и Hive и попробуйте код. а также добавьте путь к папке hadoop, hive и hbase (если вы используете) lib в путь к классу проекта, как вы добавили банки.

и для второй ошибки вы получили

тип

**netstat -nl | grep 10000**

если он что-то показывает, это означает, что сервер Hive уже запущен. вторая ошибка возникает только тогда, когда указанный вами порт уже занят каким-либо другим процессом, по умолчанию порт сервера равен 10000, что очень важно с помощью приведенной выше команды netstat, о которой я сказал.

Примечание: предположим, что вы подключились с помощью выхода кода из ... bin/hive или если вы подключены через bin/hive>, тогда код не будет подключаться, потому что я думаю (не уверен), что только один клиент может подключиться к серверу улья.

выполните вышеуказанные шаги, надеюсь, решит вашу проблему.

ПРИМЕЧАНИЕ. Выйдите из cli, когда собираетесь выполнять код, и не запускайте cli во время выполнения кода.

person Infinity    schedule 10.05.2012

Может быть какая-то проблема с разрешением, просто попробуйте какой-нибудь запрос, например «SELECT * FROM», который не запустит задания MR.

person Nikhil    schedule 10.05.2012