Как найти главный 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: Я вижу, что в документации говорится о запуске чего-то, называемого "spark-master.sh", чтобы сделать узел мастером.

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

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

Я уже попытался собрать случайный узел в кластере, а затем попробовать "spark://node: 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]

Ответы

Ответ 1

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

Ответ 2

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

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

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

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

Ответ 3

используйте команду для получения информации о URL- адресе sc.uiWebUrl