Я довольно новичок в 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)
, но если я вместо того, чтобы сделать создать таблицу или показать таблицы, он работает отлично. Может ли быть случай отсутствия конфигурации или привилегий? Или что-то еще?
Любые идеи относительно того, где я, возможно, ошибался или что-то пропустили, очень ценятся.
Спасибо, я увеличил до полного разрешения для всех групп пользователей для внешних файлов таблицы, но она до сих пор не удается. Когда я проверяю пользовательские гранты для моего пользователя, я ничего не получаю, должно ли это так? Я просто предположил, что пользователь Hive такой же, как мой пользователь для сервера, но, возможно, это не так? Нужно ли устанавливать какие-либо разрешения для Hive, в конфигурационных файлах или таких? – Elin