Как мне запросить Spark JobServer и найти, где он хранит мои файлы JAR?

Я пытаюсь следовать этой документации:

https://github.com/spark-jobserver/spark-jobserver#dependency-jars

Вариант 2, указанный в документации, гласит:

Зависимый-jar-uris также может использоваться в параметре конфигурации задания при отправке задания. В специальном контексте это имеет тот же эффект, что и параметр конфигурации контекста depend-jar-uris. В постоянном контексте банки будут загружаться для текущего задания, а затем для каждого задания, которое будет выполняться в постоянном контексте. curl -d "" 'localhost:8090/contexts/test-context?num-cpu-cores=4&memory-per-node=512m' OK⏎ curl 'localhost:8090/jobs?appName=test&classPath=spark.jobserver.WordCountExample&context= test-context&sync=true' -d '{ depend-jar-uris = ["file:///myjars/deps01.jar", "file:///myjars/deps02.jar"], input.string = "a b c a b см. "}' Файлы jar /myjars/deps01.jar и /myjars/deps02.jar (присутствующие только на узле SJS) будут загружены и доступны для драйвера и исполнителей Spark.

Является ли каталог "file:///myjars/" каталогом JAR узла SJS или каким-либо пользовательским каталогом?

У меня есть клиент в Windows и Spark JobServer в Linux. Затем я загружаю JAR на узел SJS. Узел SJS помещает этот Jar куда-нибудь. Затем, когда я звоню, чтобы запустить задание и установить «зависимый-jar-uris», узел SJS найдет мой ранее загруженный JAR и запустит задание:

"dependent-jar-uris" имеет значение "file:///tmp/spark-jobserver/filedao/data/simpleJobxxxxxx.jar"

Это работает нормально, но мне пришлось вручную искать узел SJS, чтобы найти это местоположение (например, file:///tmp/spark-jobserver/filedao/data/simpleJobxxxxxx.jar), а затем добавить его в мои будущие запросы для запуска. работа.

Вместо этого, как мне сделать REST-вызов от клиента, чтобы просто получить путь, по которому Spark JobServer помещает мои jar-файлы, когда я их загружаю, чтобы я мог правильно установить путь file:/// в моем «зависимом-jar». -uris динамически?


person Jason    schedule 12.08.2016    source источник


Ответы (1)


Я не думаю, что загруженные банки с использованием «POST/jars» можно использовать в зависимых-jar-uris. Поскольку вы загружаете банки, вы уже знаете локальный путь. Просто используйте это.

person noorul    schedule 12.08.2016
comment
В моем случае клиент выполнения задания не имеет ссылки на файлы JAR локально на клиенте. Ожидается, что они уже находятся на сервере. Если Spark JobServer позволяет отдельно загружать jar-файлы через REST API, то как на них когда-либо ссылаются позже, если не через «зависимый-jar-uris»? - person Jason; 12.08.2016
comment
POST /jars не предназначен для загрузки зависимых банок. Он предназначен для загрузки jar приложения spark. Я бы порекомендовал вам скопировать все ваши зависимые jar-файлы в поле linux сервера заданий spark и добавить их в depend-jar-uris в самой конфигурации spark jobsever. - person noorul; 13.08.2016