Ответ 1
Я обнаружил, что --master yarn-cluster
работает лучше всего. это гарантирует, что искра использует все узлы кластера хаопов.
В настоящее время я запускаю свою программу как
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]
Я обнаружил, что --master yarn-cluster
работает лучше всего. это гарантирует, что искра использует все узлы кластера хаопов.
Вы на месте. .setMaster("local[*]")
будет запускать искру в автономном режиме. В этом режиме искра может использовать только ресурсы локальной машины.
Если вы уже настроили искровой кластер поверх своего физического кластера. Решение является простым, проверьте http://master:8088
где мастер указывает на искровой мастер-машину. Там вы можете увидеть исходный URI оригинала, и по умолчанию is spark://master:7077
, на самом деле там довольно много информации, если у вас есть искровой автономный кластер.
Тем не менее, я вижу много вопросов о том, что SO заявляет, что это не работает по многим причинам. Использование утилиты spark-submit
просто меньше подвержено ошибкам, см. Раздел "Использование".
Но если у вас нет искрового кластера, я предлагаю сначала создать кластер Spark Standalone.
используйте команду для получения информации о URL- адресе sc.uiWebUrl