apache-spark - 无法使用 livy 和 sparkmagic 在 Spark 中设置环境变量
问题描述
设想 :
我在我的 kubernetes 环境中设置了一个 spark 集群:
- 用于提交作业的 Livy Pod
- 火花大师吊舱
- 用于执行的 Spark Worker Pod
我想要实现的目标如下:我在同一环境中有一个带有 Pyspark 内核的 jupyter notebook 作为 pod,其中在执行单元格时创建了一个 spark 会话,并使用 livy post request/statements 我的所有代码都被执行。我能够实现上述场景
注意:我的环境中没有 YARN、HDFS、Hadoop。我只使用了 kubernetes、spark Standalone 和 jupyter。
问题:现在我想要的是,当我运行我的 pyspark 代码并在 spark worker 中执行时,我想在该执行环境中发送以下内容:
- 我在笔记本中使用的环境变量
- 我在笔记本中使用过的 pip 包
- 或者一个自定义的 virtualenv,我可以在其中提供所有一起使用的包,但我无法做到这一点。
到目前为止我尝试过的事情:由于我使用了 spark 魔法,因此尝试使用以下方式设置环境变量,我可以在文档和其他答案中找到。
%%configure {
"conf": {
spark.executorEnv.TESTVAR
spark.appMasterEnv.TESTVAR
spark.driver.TESTVAR
spark.driverenv.TESTVAR
spark.kubernetes.driverenv.TESTVAR
spark.kubernetes.driver.TESTVAR
spark.yarn.executorEnv.TESTVAR
spark.yarn.appMasterEnv.TESTVAR
spark.workerenv.TESTVAR
}
}
作为参考,我已经单独尝试了上述选项。
我已经尝试像普通的发布请求一样直接点击 livy pod 的服务名称,但仍然没有运气。
但是变量仍然没有被检测到
在此之后,我尝试在 spark 集群的 spark-defaults.conf 中直接手动设置相同但没有工作。将不胜感激有关此事的任何帮助。这也是我的第一个 SO 问题,所以如果出现问题,请告知。