首页 > 解决方案 > 无法使用 livy 和 sparkmagic 在 Spark 中设置环境变量

问题描述

设想 :

我在我的 kubernetes 环境中设置了一个 spark 集群:

我想要实现的目标如下:我在同一环境中有一个带有 Pyspark 内核的 jupyter notebook 作为 pod,其中在执行单元格时创建了一个 spark 会话,并使用 livy post request/statements 我的所有代码都被执行。我能够实现上述场景

注意:我的环境中没有 YARN、HDFS、Hadoop。我只使用了 kubernetes、spark Standalone 和 jupyter。

问题:现在我想要的是,当我运行我的 pyspark 代码并在 spark worker 中执行时,我想在该执行环境中发送以下内容:

  1. 我在笔记本中使用的环境变量
  2. 我在笔记本中使用过的 pip 包
  3. 或者一个自定义的 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 问题,所以如果出现问题,请告知。

标签: apache-sparkkubernetespysparklivy

解决方案


推荐阅读