2015-11-03 6 views
14

В настоящее время я бег своей программы какКак найти мастер URL для существующего искрового кластера

val conf = new SparkConf() 
    .setAppName("Test Data Analysis") 
    .setMaster("local[*]") 
    .set("spark.executor.memory", "32g") 
    .set("spark.driver.memory", "32g") 
    .set("spark.driver.maxResultSize", "4g") 

Даже если я бег на кластер из 5 машин (каждая с 376 ГБ физической памяти). мои ошибки программы с java.lang.OutOfMemoryError: Java heap space

Размеры моих данных большие ... но не такие большие, что они превышают 32 ГБ памяти Executor * 5 узлов.

Я подозреваю, что это может быть потому, что я использую «местный» в качестве моего хозяина. Я видел документы говорят, использовать spark://machinename:7070

Однако я хочу знать для моего кластера ... как определить этот URL и порт

EDIT: Я могу видеть, что документация переговоры о запуске что-то называется «искрового master.sh ", чтобы сделать узел основным.

В моем случае искровой кластер был настроен/поддерживается кем-то другим, и поэтому я не хочу менять топологию, открывая свой собственный мастер.

Как я могу запросить и узнать, какой узел является существующим мастером.

Я уже пытался собирание случайного узла в кластере, а затем попытаться «искра: // узел: 7077», но это не работает и дает ошибку

[15/11/03 20:06:21 WARN AppClient$ClientActor: Could not connect to 
akka.tcp://[email protected]:7077: 
akka.remote.EndpointAssociationException: Association failed with 
[akka.tcp://[email protected]:7077] 

ответ

9

Я обнаружил, что выполнение --master yarn-cluster работает лучше всего. это гарантирует, что искра использует все узлы кластера хаопов.

8

Вы на месте. .setMaster("local[*]") будет запускать искру в автономном режиме. В этом режиме искра может использовать только ресурсы локальной машины.

Если вы уже настроили искровой кластер поверх своего физического кластера. Решение является простым, проверьте http://master:8088, где мастер указывает на искровую мастер-машину. Там вы можете увидеть исходный URI оригинала, и по умолчанию spark://master:7077, на самом деле там довольно много информации, если у вас есть искровой автономный кластер.

Однако, я вижу много вопросов о том, что это утверждение не работает по многим причинам. Использование утилиты spark-submit - это всего лишь ошибка, подверженная ошибкам, See usage.

Но если у вас еще нет искрового скопления, предлагаю настроить Spark Standalone cluster first.

+0

Я заменил мастер именем имени в моем кластере. но все та же проблема. если я делаю 'http: // : 8088' он ничего не возвращает в браузере. Я использую функцию spark-submit, но я думаю, что по умолчанию он использует локальный мастер. –

+3

с 'spark-submit' удалить' .setMaster ("local [*]") 'из искрового приложения и передать' --master spark: // master: 7077' '' spark-submit'. Все это описано в ссылке, приведенной выше. – mehmetminanc

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