Sto provando a utilizzare la scintilla sul filato in un'applicazione scala sbt invece di utilizzare direttamente spark-submit
.Aggiungi la configurazione del cluster di filato all'applicazione Spark
Ho già un cluster di filato remoto in esecuzione e posso collegarmi ai lavori spark in filato di cluster in SparkR. Ma quando provo a fare cose simili in un'applicazione scala, non posso caricare le mie variabili di ambiente in configurazioni di filato e invece utilizzare l'indirizzo e la porta del filato di default.
L'applicazione SBT è solo un semplice oggetto:
object simpleSparkApp {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setAppName("simpleSparkApp")
.setMaster("yarn-client")
.set("SPARK_HOME", "/opt/spark-1.5.1-bin-hadoop2.6")
.set("HADOOP_HOME", "/opt/hadoop-2.6.0")
.set("HADOOP_CONF_DIR", "/opt/hadoop-2.6.0/etc/hadoop")
val sc = new SparkContext(conf)
}
}
Quando eseguo questa applicazione in IntelliJ IDEA registro dice:
15/11/15 18:46:05 INFO RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
15/11/15 18:46:06 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
15/11/15 18:46:07 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
...
Sembra che l'ambiente non viene aggiunto correttamente perché 0.0.0.0
è non l'IP del nodo di gestione risorse filo remoto e il mio spark-env.sh
ha:
export JAVA_HOME="/usr/lib/jvm/ibm-java-x86_64-80"
export HADOOP_HOME="/opt/hadoop-2.6.0"
export HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop"
export SPARK_MASTER_IP="master"
e la mia yarn-site.xml
ha:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
Come posso aggiungere correttamente le variabili d'ambiente di configurazione cluster filato a questa applicazione Spark sbt?
Ulteriori informazioni:
il mio sistema è Ubuntu14.04 e il codice SparkR in grado di connettersi al cluster filato si presenta così:
Sys.setenv(HADOOP_HOME = "/opt/hadoop-2.6.0")
Sys.setenv(SPARK_HOME = "/opt/spark-1.4.1-bin-hadoop2.6")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
library(SparkR)
sc <- sparkR.init(master = "yarn-client")
Grazie, non mi aspetto che questo essere così ingombrante Hai provato anche a usare l'accendino nell'applicazione sul mesos? Sarebbe più facile dal momento che forniamo esplicitamente la porta per l'indirizzo principale del mesos? – Bamqf
Spiacente, non ho avuto la possibilità di controllare su Mesos –