Как добавить банки на оболочку улья в приложении java - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь добавить банку на оболочку улья. Я знаю о глобальных параметрах на сервере, но мое требование - добавлять их за сеанс в оболочке улья. Я использовал этот class для команд hdfs dfs, чтобы добавить jar-файлы в файловую систему hdfs

Вот что я пробовал:

Создал папку на hdfs / tmp Добавить файл в файловую систему hdfs с помощью FileSystem.copyFromLocalFile method (эквивалентно hdfs dfs -put myjar.jar / tmp

Установить разрешения для файла в файловой системе fhe fs

Убедитесь, что jar был загружен в hdfs с помощью метода getFileSystem

Список файлов в файловой системе fs с помощью listFiles для подтверждения наличия jar-файлов.

Это работает, и у меня есть банки, загруженные в hdfs, но я не могу добавить банки в сеанс улья

Когда я пытаюсь добавить их в оболочку улья, я делаю следующее:

statement = setStmt(createStatement(getConnection()));
query = "add jar " + path;
statement.execute(query);

Я получаю эту ошибку [Например, путь к /tmp/myjar.jarpting:

Error while processing statement: /tmp/myjar.jar does not exist

Другие изменения в пути, такие как

query = "add jar hdfs://<host>:<port>" + path;
query = "add jar <host>:<port>" + path;

приводит к ошибке.

команда для вывода списка jar-файлов работает (без результатов)

query = "list jars";
ResultSet rs = statement.executeQuery(query);

1 Ответ

0 голосов
/ 17 мая 2020

Мне удалось решить эту проблему

Процесс завершился неудачно из-за конфигурации FileSystem . В этот объект мы загружаем jar-файлы перед добавлением их в сеанс.

Вот как вы инициализируете файловую систему FileSystem fs = FileSystem.newInstance(conf);

Объект conf должен иметь свойства сервера улья .

Чтобы процесс работал, мне нужно было установить следующий параметр в свойстве Configuration conf.set("fs.defaultFS", hdfsDstStr);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...