Запускайте работу livy через http без загрузки jar - PullRequest
0 голосов
/ 12 мая 2018

Я играю с Livy / Spark и немного запутался, как использовать некоторые из них. В папке примеров livy есть пример создания рабочих мест, которые загружаются для запуска. Мне нравятся используемые интерфейсы, но я хочу подключиться к livy / spark через http, поскольку у меня нет Java-клиента. При этом кажется, что если я использую livyclient для загрузки jar-файлов, он существует только в этом сеансе искры. Есть ли способ загрузить livyjobs для зажигания, а затем сделать это постоянным во всей искре? Было бы лучше вместо этого сделать эти работы / приложения в искре?

Честно говоря, я пытаюсь понять, какой будет лучший подход. Я хочу иметь возможность делать интерактивные вещи через оболочку, но я также хочу создавать пользовательские задания для алгоритмов, недоступных в spark, которые я бы часто использовал. Я не уверен, каким образом я должен заняться этим. Какие-нибудь мысли? Как я должен использовать Livy? Точно так же, как остальные службы, чтобы спровоцировать, а затем обрабатывать создание пользовательских приложений / методов в спарк?

например:

Скажем, у меня есть приложение на javascript, и у меня есть некоторые данные, которые я могу загрузить, и я хочу запустить алгоритм x на нем. Алгоритм x реализован или не реализован в spark, но при нажатии этой кнопки я хочу перевести эти данные в spark, будь то вставка в hdfs, извлечение из эластичного поиска или что-то еще. Если у меня есть livy, я бы хотел вызвать команду rest в livy, чтобы он выполнил этот конкретный алгоритм. Какой стандартный способ сделать это?

Спасибо

Ответы [ 3 ]

0 голосов
/ 22 июля 2018

API ниже может использоваться для загрузки jar-файлов один раз при запуске приложения.

LivyClient client = new LivyClientBuilder(false).setURI(uri).setAll(config).build();
client.addJar(new URI(UPLOAD_JAR_PATH)).get();

Экземпляр LivyClient может находиться в области приложения.UPLOAD_JAR_PATH: путь HDFS, в котором файлы JAR присутствуют и доступны Livy Server

Затем используйте тот же экземпляр LivyClient для отправки нескольких заданий.

client.submit(job).get();
0 голосов
/ 15 февраля 2019

Вы можете начать сеанс с

spark.jars = "hdfs:///some/hdfs/location/file.jar"

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

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

Livy пока не поддерживает загрузку файлов. Вы должны указать допустимые пути к файлам для сеансов или пакетных заданий. Эти файлы должны быть в HDFS. Таким образом, в основном вы можете хранить свои сценарии или файлы в HDFS, а затем использовать Livy для запуска пакетного / интерактивного задания, ссылающегося на эти файлы.

Ливий - Cloudera

Ливий - Апач

Редактировать: Ливи инкубируется Apache, и они планируют добавить новый API для поддержки загрузки ресурсов. Проверьте это .

...