2016-04-20 3 views
1

Я очень (очень!) Новичок в Spark и Scala. Я пытаюсь реализовать то, что, как я думал, является легкой задачей для подключения к Linux-машине, на которой есть Spark, и запускает простой код.Подключитесь от оконной машины до искры

Когда я создаю простой код Scala, создайте из него банку, поместите ее в машину и запустите spark-submit, все работает, и я получаю результат. (как, например, «SimpleApp» здесь: http://spark.apache.org/docs/latest/quick-start.html)

Мой вопрос: ли все эти шаги обязательными? ? Должен ли я компилировать, строить и копировать банку на машину, а затем вручную запускать ее каждый раз, когда я ее меняю?

Предположим, что банка уже установлена ​​на машине, есть ли способ запустить ее (вызывая искру-submit) непосредственно из другого кода через мою среду IDE?

Принимая это немного дальше, если можно сказать, что я хочу выполнять разные задачи, мне нужно создавать разные банки и размещать их все на машине? Есть ли другие подходы?

Любая помощь будет оценена! Спасибо!

ответ

1

Существует два режима запуска кода, отправляющего вашу работу на сервер. или запуском в локальном режиме, который не требует установки Spark Cluster. В большинстве случаев это используется для создания и тестирования своего приложения на небольших наборах данных, а затем для создания и отправки заданий в качестве рабочих мест для производства.

Запуск в локальном режиме

val conf = new SparkConf().setMaster("local").setAppName("wordCount Example") 

Установка мастера, как «местный» искру вместе с приложением.

Если вы уже создали свои банки, вы можете использовать их, указав URL-адрес искровых мастеров и добавив необходимые банки, которые вы можете отправить задание в удаленный кластер.

val conf = new SparkConf() 
     .setMaster("spark://cyborg:7077") 
     .setAppName("SubmitJobToCluster Example") 
     .setJars(Seq("target/spark-example-1.0-SNAPSHOT-driver.jar")) 

Используя искровой конф вы можете инициализировать SparkContext в приложении и использовать его как в локальной или кластерной установке.

val sc = new SparkContext(conf) 

Это старый проект spark-examples у вас есть образцы программ, которые можно запускать прямо с вашего IDE.

Так Ответ вы расспрашивает

  • ли все эти шаги обязательными? ? Должен ли я компилировать, строить и копировать банку на машину, а затем вручную запускать ее каждый раз, когда я ее меняю? ДаВы можете. Вышеприведенный пример делает это.
  • Принимая это немного дальше, если можно сказать, что я хочу выполнять разные задачи, мне нужно создавать разные банки и размещать их все на машине? Есть ли другие подходы? ДаВам нужна только одна банка, содержащая все ваши задачи и зависимости, которые вы можете указать классу при отправке задания на искру. Программируя это, вы полностью контролируете его.
Смежные вопросы