2016-12-21 2 views
1

У меня есть Spark enviroment, работающий на Ubuntu 16.2 поверх VirtualBox. Его настроен для работы на местном уровне, и когда я начинаю Спарк сПодключиться к Spark, запущенному на VM

./start-all

я могу получить доступ к нему на VM с помощью веб-интерфейса, используя URL: http://localhost:8080

От хост-машине (Windows), я могу получить к нему доступ тоже с использованием виртуального IP: http://192.168.x.x:8080.

enter image description here

Проблема возникает, когда я пытаюсь создать контекст из моей хост-машины. У меня есть проект в затмении, которое использует Maven, и я пытаюсь запустить следующий код:

ConfigLoader.masterEndpoint = "spark://192.168.1.132:7077" 

val conf = new SparkConf().setMaster(ConfigLoader.masterEndpoint).setAppName("SimpleApp") 
val sc = new SparkContext(conf) 

Я получил эту ошибку:

16/12/21 00:52:05 INFO StandaloneAppClient$ClientEndpoint: Connecting to master spark://192.168.1.132:8080... 
16/12/21 00:52:06 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master 192.168.1.132:8080 
org.apache.spark.SparkException: Exception thrown in awaitResult 
    at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77) 

Я попытался изменить URL для:

ConfigLoader.masterEndpoint = "spark://192.168.1.132:7077" 

Неудачно.

Кроме того, если я попытаюсь получить доступ непосредственно к главному URL-адресу через сеть (http://localhost:7077 в VM), я ничего не получу. Я не знаю, нормально ли это.

Что мне не хватает?

ответ

1

В вашей VM перейдите в spark-2.0.2-bin-hadoop2.7/conf и создайте файл spark-env.sh, используя следующую команду.

cp spark-env.sh.template spark-env.sh 

Открыть файл spark-env.sh в редакторе vi и добавить строку ниже.

SPARK_MASTER_HOST=192.168.1.132 

Остановить и начать искру с помощью stop-all.sh и start-all.sh. Теперь в вашей программе вы можете установить мастер, как показано ниже.

val spark = SparkSession.builder() 
    .appName("SparkSample") 
    .master("spark://192.168.1.132:7077") 
    .getOrCreate() 
+0

Спасибо !, это решает часть моей проблемы. Другая часть заключалась в том, что я не использовал одни и те же версии искры/scala между моим приложением и искровой машиной. Этот пост тоже помог мне: http: //stackoverflow.com/questions/38559597/failed-to-connect-to-spark-masterinvalidclassexception-org-apache-spark-rpc-rp – dgcipp