2014-12-09 1 views
0

Я довольно новичок в Hive и HDFS, но мне удалось создать функционирующий HiveClient в java, который успешно соединяет и выполняет запросы на моем сервере HDFS. То есть, все запросы, кроме , выбирают операторов.java HiveClient failed select: java.sql.SQLException: Запрос возвратил ненулевой код: 9

Мой код выглядит следующим образом:

Statement stmt; 
    ResultSet res; 
    try { 
     stmt = con.createStatement(); 
     res = stmt.executeQuery("select * from my_table"); 
     while (res.next()) { 
     System.out.println(res.getString(1)); 
     } 

     res.close(); 
     stmt.close(); 
     con.close(); 
    } catch (SQLExceptionex) { 
     ex.printStackTrace(); 
    } 

Когда я запускаю его, ошибка заключается в следующем:

java.sql.SQLException: Запрос вернул ненулевое код: 9, причина: FAILED: Ошибка выполнения, код возврата -101 из shark.execution.SparkTask at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery (HiveStatement.java: 194) на se.HiveClient.doQuery (HiveClient.java:56) в se.HiveClient.main (HiveClient.java:82)

, но если я вместо того, чтобы сделать создать таблицу или показать таблицы, он работает отлично. Может ли быть случай отсутствия конфигурации или привилегий? Или что-то еще?

Любые идеи относительно того, где я, возможно, ошибался или что-то пропустили, очень ценятся.

ответ

0

Это должна быть проблема с разрешениями.

Для создания таблиц или отображения таблиц требуется, чтобы куст получал метаданные из своей базы данных. Для фактического выбора данных необходимо прочитать файл. Проверьте, какие разрешения предоставлены файлу.

Улей, вероятно, будет запрашиваться как пользователь куста и, следовательно, либо должен быть владельцем файла, либо должен находиться в правильной группе.

Это, как представляется, подобная проблема: http://forums.pentaho.com/archive/index.php/t-89586.html

+0

Спасибо, я увеличил до полного разрешения для всех групп пользователей для внешних файлов таблицы, но она до сих пор не удается. Когда я проверяю пользовательские гранты для моего пользователя, я ничего не получаю, должно ли это так? Я просто предположил, что пользователь Hive такой же, как мой пользователь для сервера, но, возможно, это не так? Нужно ли устанавливать какие-либо разрешения для Hive, в конфигурационных файлах или таких? – Elin

 Смежные вопросы

  • Нет связанных вопросов^_^