Spark Mesos 调度程序
Spark Mesos Dispatcher
我的团队正在 Amazon Cloud 上部署新的大数据架构。我们启动了 Mesos 和 运行 个 Spark 作业。
我们正在从同一集群内的堡垒主机提交 Spark 作业(即:jar)。然而,这样做,堡垒主机就是驱动程序,这被称为 client mode(如果我理解正确的话)。
我们想尝试 cluster mode,但我们不知道从哪里开始调度程序进程。
文档说在集群中启动它,但我很困惑,因为我们的主节点没有安装 Spark,我们使用 Zookeeper 进行主节点选举。在从属节点上启动它不是一个可用的选项,因为从属可能会失败并且我们不想向堡垒主机公开从属 ip 或 public DNS。
在堡垒主机上启动调度程序是否正确?
非常感谢
我没用过Mesos的集群模式,cluster mode description不是很详细。脚本上什至没有 --help
选项,恕我直言。但是,如果您不传递 --master
参数,它会出错并显示一条帮助消息,结果表明有一个 --zk
选项用于指定 Zookeeper URL。
可行的方法是使用适当的 --master
和 --zk
选项在堡垒本身上启动此脚本。这对你有用吗?
文档不是很详细。
然而,我们对我们的发现感到非常满意:
根据 documentation,Mesos 集群(以及 Python 应用程序)不支持集群模式。
但是,我们使用 --master mesos://zk://...
启动了调度程序
要提交申请,您需要满足以下条件:
spark-submit --deploy-mode cluster <other options> --master mesos://<dispatcher_ip>:7077 <ClassName> <jar>
如果您 运行 从堡垒机执行此命令,它将不起作用,因为 Mesos 管理节点将在与堡垒相同的路径中查找可提交的 jar。我们结束了将文件公开为可下载文件 URL.
希望对您有所帮助
您可以使用带有 spark 的 docker 图像和您的 application.jar 而不是将 jar 上传到 s3。我还没有尝试过,但我认为它应该有效。环境变量是spark-env.sh
中的SPARK_DIST_CLASSPATH
。我使用在没有 hadoop 的情况下编译的 spark 发行版和 apache hadoop 2.7.1
export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath):/opt/hadoop/share/hadoop/tools/lib/*:/opt/application.jar
我的团队正在 Amazon Cloud 上部署新的大数据架构。我们启动了 Mesos 和 运行 个 Spark 作业。
我们正在从同一集群内的堡垒主机提交 Spark 作业(即:jar)。然而,这样做,堡垒主机就是驱动程序,这被称为 client mode(如果我理解正确的话)。
我们想尝试 cluster mode,但我们不知道从哪里开始调度程序进程。
文档说在集群中启动它,但我很困惑,因为我们的主节点没有安装 Spark,我们使用 Zookeeper 进行主节点选举。在从属节点上启动它不是一个可用的选项,因为从属可能会失败并且我们不想向堡垒主机公开从属 ip 或 public DNS。
在堡垒主机上启动调度程序是否正确?
非常感谢
我没用过Mesos的集群模式,cluster mode description不是很详细。脚本上什至没有 --help
选项,恕我直言。但是,如果您不传递 --master
参数,它会出错并显示一条帮助消息,结果表明有一个 --zk
选项用于指定 Zookeeper URL。
可行的方法是使用适当的 --master
和 --zk
选项在堡垒本身上启动此脚本。这对你有用吗?
文档不是很详细。 然而,我们对我们的发现感到非常满意: 根据 documentation,Mesos 集群(以及 Python 应用程序)不支持集群模式。
但是,我们使用 --master mesos://zk://...
要提交申请,您需要满足以下条件:
spark-submit --deploy-mode cluster <other options> --master mesos://<dispatcher_ip>:7077 <ClassName> <jar>
如果您 运行 从堡垒机执行此命令,它将不起作用,因为 Mesos 管理节点将在与堡垒相同的路径中查找可提交的 jar。我们结束了将文件公开为可下载文件 URL.
希望对您有所帮助
您可以使用带有 spark 的 docker 图像和您的 application.jar 而不是将 jar 上传到 s3。我还没有尝试过,但我认为它应该有效。环境变量是spark-env.sh
中的SPARK_DIST_CLASSPATH
。我使用在没有 hadoop 的情况下编译的 spark 发行版和 apache hadoop 2.7.1
export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath):/opt/hadoop/share/hadoop/tools/lib/*:/opt/application.jar