Подтвердить что ты не робот

Запуск искровых работ с помощью 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 для этого.

Во-первых, я хотел бы знать, что является лучшим решением в этом случае, мудрым и масштабируемым.

Примечание. Я использую автономный кластер из искры. любезную помощь.

4b9b3361

Ответ 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 доступны сейчас.