Предположим, я запустил команду pyspark
и получил глобальную переменную spark
типа SparkSession
. Насколько я понимаю, этот spark
поддерживает соединение с мастером Spark. Могу ли я распечатать сведения об этом соединении, включая имя хоста этого мастера Spark?
Спасибо. Похоже, что в моем случае spark.sparkContext.master
- это yarn
. У вас как получить имя главного хоста?
Для базовой информации вы можете использовать свойство master
:
spark.sparkContext.master
Чтобы получить подробную информацию о YARN, вам, возможно, придется покопаться в hadoopConfiguration
:
hadoopConfiguration = spark.sparkContext._jsc.hadoopConfiguration()
hadoopConfiguration.get("yarn.resourcemanager.hostname")
или же
hadoopConfiguration.get("yarn.resourcemanager.address")
При отправке в YARN Spark использует конфигурацию Hadoop для определения диспетчера ресурсов, поэтому эти значения должны совпадать со значениями, присутствующими в конфигурации, размещенной в HADOOP_CONF_DIR
или YARN_CONF_DIR
.
Большое спасибо. Еще один вопрос: что это значит, если "yarn.resourcemanager.hostname"
- это 0.0.0.0
?
Похоже на ваш локальный компьютер (вы запускаете YARN на том же узле?).
spark.sparkContext.master
был бы хорошим началом. Вам понадобится дополнительная логика дляlocal
и YARN, чтобы получить фактический хост.