上下文: 集群配置如下:
问题: 我试图在以集群部署模式运行的pyspark jupyter笔记本中创建一个Spark会话。我试图使驱动程序在不是运行jupyter笔记本的节点上运行。现在,我可以在群集上运行作业,但只能使用在node2上运行的驱动程序。
经过大量的挖掘,我发现了这个stackoverflow帖子,其中声称如果您使用spark运行交互式shell,则只能在本地部署模式(驱动程序位于您正在使用的计算机上)中进行。该帖子继续说,类似jupyter hub之类的结果也无法在集群部署模式下工作,但是我找不到任何可以证实这一点的文档。有人可以确认jupyter hub是否可以完全在集群模式下运行吗?
我尝试以集群部署模式运行spark会话:
from pyspark.sql import SparkSession
spark = SparkSession.builder\
.enableHiveSupport()\
.config("spark.local.ip",<node 3 ip>)\
.config("spark.driver.host",<node 3 ip>)\
.config('spark.submit.deployMode','cluster')\
.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
错误:
/usr/spark/python/pyspark/sql/session.py in getOrCreate(self)
167 for key, value in self._options.items():
168 sparkConf.set(key, value)
--> 169 sc = SparkContext.getOrCreate(sparkConf)
170 # This SparkContext may be an existing one.
171 for key, value in self._options.items():
/usr/spark/python/pyspark/context.py in getOrCreate(cls, conf)
308 with SparkContext._lock:
309 if SparkContext._active_spark_context is None:
--> …Run Code Online (Sandbox Code Playgroud)