【问题标题】:How to assign the python interpreter spark worker used?如何分配使用的python解释器spark worker?
【发布时间】:2023-03-10 03:27:01
【问题描述】:

如何分配使用的python解释器spark worker?

我尝试了几种方法,例如: 1) 设置环境变量

export PYSPARK_DRIVER_PYTHON=/python_path/bin/python
export PYSPARK_PYTHON=/python_path/bin/python

不工作。我确定 PYSPARK_DRIVER_PYTHON PYSPARK_PYTHON 环境设置成功使用:

env | grep PYSPARK_PYTHON

我想使用 pyspark

 /python_path/bin/python

作为启动python解释器

但是工人开始使用:

python -m deamon

我不想将默认 python 链接到 /python_path/bin/python,因为 这可能会影响其他开发人员,bcz 默认 python 和 /python_path/bin/python 版本不同,并且都在生产中使用。

同时设置 spark-env.sh 无效:

spark.pyspark.driver.python=/python_path/bin/python spark.pyspark.python=/python_path/bin/python

启动驱动程序时会出现一些警告日志,例如:

conf/spark-env.sh:第 63 行: spark.pyspark.driver.python=/python_path/bin/python: 没有这样的文件或目录 conf/spark-env.sh:第 64 行: spark.pyspark.python=/python_path/bin/python: 没有这样的文件或目录

【问题讨论】:

  • spark.pyspark.driver.pythonspark.pyspark.python 应设置在 spark-defaults.conf 中。 spark-env.sh 中的等价物是 export PYSPARK_DRIVER_PYTHON=/python_path/bin/pythonexport PYSPARK_PYTHON=/python_path/bin/python。检查这两个文件以确保这些选项不会被覆盖。
  • @MaFF 谢谢你的提醒。

标签: python-2.7 apache-spark pyspark


【解决方案1】:

1) 检查你的 python 目录的权限。也许 Spark 没有正确的权限。尝试做:sudo chmod -R 777 /python_path/bin/python

2) Spark documentation 说:

如果设置了属性 spark.pyspark.python,则优先。

所以也尝试在conf/spark-defaults.conf 中设置spark.pyspark.python

3) 此外,如果您使用具有多个节点的集群,您需要检查 Python 是否安装在每个节点上的正确目录中,因为您不知道从哪里开始工作。

4) Spark 将使用您的系统 PATH 上可用的第一个 Python 解释器,因此您可以像解决方法一样在 PYTHON 变量中设置 Python 的路径。

【讨论】:

  • 谢谢,很具体,我现在一一检查你的说明。
  • 对您有帮助吗?
  • 谢谢,非常有帮助,但它不适用于我的情况,我的情况是集群模式下的 spark,主节点和工作节点具有不同的 python_path,我每次都按照您的指示在所有节点上执行运行 python 任务,worker 节点总是以默认 python 而不是我的设置 spark.pyspark.driver.python 开始。
猜你喜欢
  • 2023-04-04
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多