如何在Windows台机器上搭建Spark应用的集群环境?

How to set up cluster environment for Spark applications on Windows machines?

我一直在使用 spark 独立非集群模式在 pyspark 中进行开发。这几天想多探索一下spark的集群模式。我在互联网上搜索,发现我可能需要一个集群管理器来 运行 使用 Apache Mesos 或 Spark Standalone 的不同机器上的集群。但是,我无法轻易找到图片的细节。

我应该如何从系统设计的角度进行设置,以便 运行 在多台 windows 机器(或多台 windows 虚拟机)中启动集群。

您可能想要探索(从最简单的)Spark Standalone,通过 Hadoop YARN 到 Apache Mesos 或 DC/OS。参见 Cluster Mode Overview

我建议首先使用 Spark Standalone(作为提交 Spark 应用程序的最简单的选择)。 Spark Standalone 包含在任何 Spark 安装中,并且在 Windows 上运行良好。问题是 Windows OS 没有脚本来启动和停止独立的 Master 和 Worker(又名从属)。您只需要自己 "code" 即可。

使用以下命令在 Windows 上启动一个独立的 Master:

// terminal 1
bin\spark-class org.apache.spark.deploy.master.Master

请注意,在您启动独立 Master 后,您不会得到任何输入,但不要担心,前往 http://localhost:8080/ 查看 Spark Standalone 集群的网络 UI。

在单独的终端中启动独立 Worker 的实例。

// terminal 2
bin\spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077

有了一个 worker Spark Standalone 集群,您应该能够按如下方式提交 Spark 应用程序:

spark-submit --master spark://localhost:7077 ...

阅读Spark官方文档Spark Standalone Mode


我刚刚发现 Mesos 不是一个选项,因为它 System Requirements:

Mesos runs on Linux (64 Bit) and Mac OS X (64 Bit).

然而,您可以 运行 任何使用 VirtualBox 或类似工具的虚拟机集群。至少 DC/OS 有 dcos-vagrant 应该相当容易:

dcos-vagrant Quickly provision a DC/OS cluster on a local machine for development, testing, or demonstration.

Deploying DC/OS Vagrant involves creating a local cluster of VirtualBox VMs using the dcos-vagrant-box base image and then installing DC/OS.