如何使用pyspark启动独立集群?

问题描述 投票:0回答:3

我在ubuntu下使用pyspark和python 2.7 我安装它使用

pip install pyspark --user 

并尝试按照说明设置 Spark 集群

我找不到脚本start-master.sh 我认为这与我安装了 pyspark 而不是常规 Spark

有关

我发现here我可以通过pyspark将工作节点连接到主节点,但是如何使用pyspark启动主节点?

python apache-spark pyspark
3个回答
4
投票

通过

pip install pyspark
安装pyspark后,您可以使用以下命令启动Spark独立集群主进程:

export SPARK_LOCAL_IP=127.0.0.1  # restricts Spark to local access
spark-class org.apache.spark.deploy.master.Master -h 127.0.0.1

然后您可以添加一些工作人员(执行者),它们将处理作业:

export SPARK_LOCAL_IP=127.0.0.1  # restricts Spark to local access
spark-class org.apache.spark.deploy.worker.Worker \
    spark://127.0.0.1:7077 \
    -c 4 -m 8G

标志

-c
-m
指定工作线程提供的 CPU 核心数量和内存量。

出于安全原因,此处使用

127.0.0.1
本地地址(如果有人只是复制/粘贴此行会在其网络中公开“任意代码执行服务”,那就不好了),但对于分布式独立 Spark 集群设置应使用不同的地址(例如,隔离网络中的专用 IP 地址仅适用于此集群节点及其目标用户,并且应阅读官方 Spark 安全指南)。

spark-class
脚本包含在“pyspark”python包中,它是一个包装器,用于从
spark-env.sh
加载环境变量并将相应的spark jar位置添加到
-cp
命令的
java
标志中。

如果您可能需要配置环境 - 请参阅官方 Spark 文档,但它也可以工作,并且可能适合使用默认参数的常规使用。另外,请使用

--help
查看 master/worker 命令的标志。

这是如何使用

pyspark
脚本和
ipython
shell 连接到此独立集群的示例:

PYSPARK_DRIVER_PYTHON=ipython \
    pyspark --master spark://127.0.0.1:7077 \
    --num-executors 2
    --executor-cores 2
    --executor-memory 4G

手动实例化 Spark 会话的代码,例如。在 Jupyter 中:

from pyspark.sql import SparkSession

spark = (
    SparkSession.builder
    .master("spark://127.0.0.1:7077")
    # the number of executors this job needs
    .config("spark.executor.instances", 2)
    # the number of CPU cores memory this needs from the executor,
    # it would be reserved on the worker
    .config("spark.executor.cores", "2")
    .config("spark.executor.memory", "4G")
    .getOrCreate()
)

2
投票

我在操作中做了一些混淆。

您需要在应作为主机运行的机器上启动 Spark。 您可以在这里下载

解压后,你有spark/sbin文件夹,里面有start-master.sh脚本。你需要以 -h 参数开始。

请注意,您需要创建一个像here所述的spark-env文件并定义spark本地变量和主变量,这在主计算机上很重要。

之后,在worker节点上,使用start-slave.sh脚本启动worker节点。

一切顺利,您可以在 python 中使用 Spark 上下文来使用它!


1
投票

如果您已经通过 conda / pip 安装使用 pyspark,则无需再次安装 Spark 并设置环境变量来进行集群设置。

对于 conda / pip pyspark 安装仅缺少

'conf'
'sbin'
'kubernetes'
'yarn'
文件夹,您只需下载 Spark 并将这些文件夹移动到 pyspark 所在的文件夹中(通常是 site-packages 文件夹中)蟒蛇)。

© www.soinside.com 2019 - 2024. All rights reserved.