2013-11-27 5 views
1

У меня есть программа, написанная на Скале, используя искру, которая работает нормально локально, когда я начинаю его с sbt runКак запустить искровой кластер на ec2 из sbt?

Я хотел бы иметь возможность запускать его на EC2 кластерах Амазонки с использованием SBT. Это возможно и как?

Я посмотрел на http://spark.incubator.apache.org/docs/latest/ec2-scripts.html, но это, кажется, делает что-то без sbt.

Моя версия SBT:

~/git-reps/cs262a $ sbt --version 
sbt launcher version 0.12.4 

Мой build.sbt файл:

name := "Ensemble Bayes Tree" 

version := "1.0" 

scalaVersion := "2.9.3" 

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "0.8.0-incubating", 
"org.apache.spark" % "spark-mllib_2.9.3" % "0.8.0-incubating", 
"org.slf4j" % "slf4j-api" % "1.6.4", 
"org.slf4j" % "slf4j-log4j12" % "1.7.5", 
"log4j" % "log4j" % "1.2.14", 
"org.eclipse.jetty.orbit" % "javax.servlet" % "2.5.0.v201103041518" artifacts Artifact("javax.servlet", "jar", "jar") 
) 

resolvers += "Akka Repository" at "http://repo.akka.io/releases/" 

ответ

0

После запуска кластера EC2, вы можете скопировать код в главном узле кластера, необходимо войти в мастер с помощью SSH, и запустить sbt на этой машине (например, AMP Camp 3 exercises).

Обязательно передайте адрес мастера Spark при создании SparkContext в вашей программе драйверов. Я бы установил source /root/spark/conf/spark-env.sh, чтобы установить переменную окружения $MASTER, затем прочитайте эту переменную в моей программе драйверов. Адрес мастера также сохраняется в /root/spark-ec2/cluster-url.

Sourcing spark-env.sh также установит несколько переменных среды для настройки использования памяти Spark в зависимости от размера узлов кластера. Если вы не используете этот файл, убедитесь, что в вашем драйвере установлено системное свойство spark.executor.memory Java, чтобы в полной мере использовать память кластера.

+0

Спасибо за очистку подхода. Эта веб-страница ampCamp кажется надежным ресурсом! – kidmose

Смежные вопросы