Запуск искровых работ с помощью REST
Я уже поздно пробовал apache spark. Мой вопрос более специфичен для запуска искровых работ. Здесь Я поставил вопрос о понимании искровых заданий. После того, как я стал грязным на работе, я перешел к моему требованию.
У меня есть конечная точка REST, где я выставляю API для запуска Jobs, я использовал Spring4.0 для реализации Rest. Теперь я подумал о том, чтобы выполнить Job as Service в Spring, где я буду вводить Job программно, то есть когда запускается конечная точка, с заданными параметрами я бы запускал задание.
У меня сейчас мало вариантов дизайна.
-
Как и в приведенном ниже письменном задании, мне нужно поддерживать несколько Джобсов, вызванных абстрактным классом, может быть JobScheduler
.
/*Can this Code be abstracted from the application and written as
as a seperate job. Because my understanding is that the
Application code itself has to have the addJars embedded
which internally sparkContext takes care.*/
SparkConf sparkConf = new SparkConf().setAppName("MyApp").setJars(
new String[] { "/path/to/jar/submit/cluster" })
.setMaster("/url/of/master/node");
sparkConf.setSparkHome("/path/to/spark/");
sparkConf.set("spark.scheduler.mode", "FAIR");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
sc.setLocalProperty("spark.scheduler.pool", "test");
// Application with Algorithm , transformations
-
проходящие выше точки, имеют несколько версий заданий, обрабатываемых службой.
-
Или используйте Spark Job Server для этого.
Во-первых, я хотел бы знать, что является лучшим решением в этом случае, мудрым и масштабируемым.
Примечание. Я использую автономный кластер из искры.
любезную помощь.
Ответы
Ответ 1
Просто используйте Spark JobServer
https://github.com/spark-jobserver/spark-jobserver
Есть много вещей, которые следует учитывать при создании сервиса, и Spark JobServer уже имеет большинство из них. Если вы находите вещи, которые недостаточно хороши, должно быть легко сделать запрос и добавить код в свою систему, а не изобретать его с нуля
Ответ 2
Оказывается, Spark имеет скрытый REST API для отправки задания, проверки статуса и убийства.
Посмотрите полный пример здесь: http://arturmkrtchyan.com/apache-spark-hidden-rest-api
Ответ 3
Livy - это открытый интерфейс REST для взаимодействия с Apache Spark из любого места. Он поддерживает выполнение фрагментов кода или программ в контексте Spark, который выполняется локально или в Apache Hadoop YARN.
Ответ 4
Вот хороший клиент, который вам может пригодиться: https://github.com/ywilkof/spark-jobs-rest-client
Изменение: этот ответ был дан в 2015 году. Есть варианты, такие как Livy доступны сейчас.