spark mesos调度员

ezykj2lf  于 2021-06-21  发布在  Mesos
关注(0)|答案(3)|浏览(305)

我的团队正在亚马逊云上部署一个新的大数据架构。我们已经启动了mesos并运行spark作业。
我们正在从同一集群内的堡垒主机提交spark作业(即:jar)。但是,这样做,bastion主机就是驱动程序,这被称为客户机模式(如果我理解正确的话)。
我们想尝试群集模式,但不知道从何处开始dispatcher进程。
文档中说要在集群中启动它,但我很困惑,因为我们的主机没有安装spark,我们使用zookeeper进行主机选举。在从属节点上启动它不是一个可用的选项,因为从属节点可能会失败,并且我们不想向堡垒主机公开从属ip或公共dns。
在堡垒主机上启动调度程序正确吗?
非常感谢你

dgiusagp

dgiusagp1#

文档不是很详细。但是,我们对我们的发现非常满意:根据文档,mesos集群(以及python应用程序)不支持集群模式。
但是,我们开始使用 --master mesos://zk://... 要提交申请,您需要以下内容:

spark-submit --deploy-mode cluster <other options> --master mesos://<dispatcher_ip>:7077 <ClassName> <jar>

如果您在bastion机器上运行这个命令,它将不起作用,因为mesos主机将在bastion所在的路径中查找可提交的jar。我们最终将该文件公开为可下载的url。
希望这有帮助

f45qwnt8

f45qwnt82#

您可以使用带有spark和application.jar的docker映像,而不是将jar上传到s3。我还没试过,但我觉得应该有用。环境变量为 SPARK_DIST_CLASSPATHspark-env.sh . 我使用spark发行版,在apachehadoop2.7.1中不使用hadoop编译

export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath):/opt/hadoop/share/hadoop/tools/lib/*:/opt/application.jar
vnjpjtjt

vnjpjtjt3#

我没有在mesos中使用集群模式,集群模式的描述也不是很详细。甚至没有一个 --help 脚本上的选项,就像应该有的一样,imho。但是,如果你不通过考试 --master 参数时,它会出错并显示一条帮助消息,结果是 --zk 用于指定zookeeper url的选项。
可能有效的方法是在堡垒上用适当的 --master 以及 --zk 选项。那对你有用吗?

相关问题