我一直在使用spark独立非群集模式在pyspark中开发。这些天,我想探讨更多关于spark的集群模式。我在互联网上搜索,发现我可能需要一个集群管理器来使用Apache Mesos或Spark Standalone在不同的机器上运行集群。但是,我无法轻易找到图片的细节。
我应该如何从系统设计的角度进行设置,以便在多个Windows机器(或多个Windows vms)中运行spark集群。
答案 0 :(得分:12)
您可能希望探索(从最简单的)Spark Standalone,通过Hadoop YARN到Apache Mesos或DC / OS。请参阅virtual address space。
我建议首先使用Spark Standalone(作为提交Spark应用程序的最简单选项)。 Spark Standalone包含在任何Spark安装中,并且可以在Windows上正常运行。问题是没有脚本可以启动和停止Windows操作系统的独立Master和Workers(也称为奴隶)。你只需要"代码"他们自己。
使用以下命令在Windows上启动独立主服务器:
// terminal 1
bin\spark-class org.apache.spark.deploy.master.Master
请注意,在您启动独立主服务器后,您将无法获得任何输入,但请不要担心并转到Cluster Mode Overview以查看Spark Standalone群集的Web UI。
在单独的终端中启动独立Worker的实例。
// terminal 2
bin\spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077
使用单工作Spark Standalone群集,您应该能够按如下方式提交Spark应用程序:
spark-submit --master spark://localhost:7077 ...
阅读Spark官方文档中的http://localhost:8080/。
正如我刚刚发现Mesos不是一个选项Spark Standalone Mode:
Mesos在Linux(64位)和Mac OS X(64位)上运行。
但是,您可以使用VirtualBox或类似工具使用虚拟机运行任何群集。至少DC / OS有System Requirements,这应该很容易:
dcos-vagrant 在本地计算机上快速配置DC / OS群集以进行开发,测试或演示。
部署DC / OS Vagrant涉及使用dcos-vagrant-box基本映像创建VirtualBox VM的本地群集,然后安装DC / OS。