Я пытаюсь отправить приложение spark на отдельную виртуальную машину кластера spark (2.1.1), работающую в GCP, с моего ноутбука Python 3 (запущенного на локальном ноутбуке), но по какой-то причине сеанс spark вызывает ошибку "StandaloneAppClient $ ClientEndpoint : Не удалось подключиться к главному искровому мастеру 7077 ".
Подробности среды: IPython и Spark Master работают в одной виртуальной машине GCP, которая называется «sparkmaster». На 3 дополнительных виртуальных машинах GCP работают Spark Slaves и Cassandra Clusters. Я подключаюсь с локального ноутбука (MBP), используя Chrome, к ноутбуку GCP VM IPython в "sparkmaster"
Обратите внимание, что терминал работает:
bin/spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.1.1 --master spark://sparkmaster:7077 ex.py 1000
Запуск его из Python Notebook:
import os
os.environ["PYSPARK_SUBMIT_ARGS"] = '--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.1.1 pyspark-shell'
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
spark=SparkSession.builder.master("spark://sparkmaster:7077").appName('somatic').getOrCreate() #This step works if make .master('local')
df = spark \
.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers", "kafka1:9092,kafka2:9092,kafka3:9092") \
.option("subscribe", "gene") \
.load()
до сих пор я пробовал это:
Я пытался изменить главный узел spark, spark-defaults.conf и spark-env.sh, чтобы добавить SPARK_MASTER_IP.
Попытался найти параметр STANDALONE_SPARK_MASTER_HOST = hostname -f, чтобы я мог удалить "-f". По какой-то причине пользовательский интерфейс spark master показывает полное доменное имя: 7077, а не имя хоста: 7077
передал FQDN в качестве параметра для .master () и os.environ ["PYSPARK_SUBMIT_ARGS"]
Пожалуйста, дайте мне знать, если вам нужно больше деталей.