【问题标题】:Spark Mesos DispatcherSpark Mesos 调度程序
【发布时间】:2015-08-19 17:34:37
【问题描述】:

我的团队正在亚马逊云上部署一个新的大数据架构。我们已经启动并运行了 Mesos 作业。

我们正在从同一集群内的堡垒主机提交 Spark 作业(即 jars)。但是,这样做的堡垒主机是驱动程序,它被称为client mode(如果我理解正确的话)。

我们想试试cluster mode,但我们不知道从哪里开始调度程序进程。

文档说要在集群中启动它,但我很困惑,因为我们的 master 没有安装 Spark,我们使用 Zookeeper 进行 master 选举。在从节点上启动它不是一个可用的选项,因为从节点可能会失败,而且我们不想将从节点 IP 或公共 DNS 暴露给堡垒主机。

在堡垒主机上启动调度器是否正确?

非常感谢

【问题讨论】:

    标签: apache-spark mesos


    【解决方案1】:

    文档不是很详细。 但是,我们对我们的发现感到非常满意: 根据documentation,Mesos 集群(和 Python 应用程序)不支持集群模式。

    但是,我们使用 --master mesos://zk://... 启动调度程序

    要提交申请,您需要以下内容:

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

    如果您从堡垒机运行此命令,它将不起作用,因为 Mesos 主机会在与堡垒机相同的路径中查找可提交的 jar。我们结束了将文件公开为可下载的 URL。

    希望对你有帮助

    【讨论】:

    • 您是如何启动调度程序的?我的意思是在哪里指定 --master mesos://zk://...
    • 对不起,很久以前了。由于各种原因,我们放弃了 Mesos 作为资源管理器,所以我无法回答或指出文档
    • 非常感谢您抽出时间发表评论!再会 ! :)
    【解决方案2】:

    我没有在 Mesos 中使用过集群模式,cluster mode description 不是很详细。脚本上甚至没有--help 选项,就像应该有的那样,恕我直言。但是,如果您不传递 --master 参数,它会出错并显示帮助消息,并且事实证明存在用于指定 Zookeeper URL 的 --zk 选项。

    可行的方法是使用适当的--master 和--zk 选项在堡垒本身上启动此脚本。这对你有用吗?

    【讨论】:

      【解决方案3】:

      您可以使用带有 spark 和 application.jar 的 docker 映像,而不是将 jar 上传到 s3。我还没有尝试,但我认为它应该工作。环境变量是SPARK_DIST_CLASSPATH 中的spark-env.sh。我使用没有 hadoop 和 apache hadoop 2.7.1 编译的 spark 发行版

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-10
        • 2021-04-09
        • 2017-07-13
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        相关资源
        最近更新 更多