apache-spark - 使用 Dispatcher 的 Spark Mesos 集群模式

标签 apache-spark mesos

我只有一台机器,想用 mesos 集群模式运行 spark 作业。使用一组节点运行可能更有意义,但我主要想先测试 mesos 以检查它是否能够更有效地利用资源(同时运行多个 spark 作业而无需静态分区)。我尝试了多种方法,但都没有成功。这是我所做的:

  • 构建 mesos 并运行 mesos master 和 slaves(在同一台机器上有 2 个 slaves)。
    sudo ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
    sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --port=5051 --work_dir=/tmp/mesos1
    sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --port=5052 --work_dir=/tmp/mesos2
    
  • 运行 spark-mesos-dispatcher
    sudo ./sbin/start-mesos-dispatcher.sh --master mesos://localhost:5050
    
  • 使用调度程序作为主 URL 提交应用程序。
    spark-submit  --master mesos://localhost:7077 <other-config> <jar file>
    

  • 但它不起作用:
        E0925 17:30:30.158846 807608320 socket.hpp:174] Shutdown failed on fd=61: Socket is not connected [57]
        E0925 17:30:30.159545 807608320 socket.hpp:174] Shutdown failed on fd=62: Socket is not connected [57]
    

    如果我使用 spark-submit --deploy-mode 集群,则会收到另一条错误消息:
        Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestConnectionException: Unable to connect to server
    

    如果我不使用调度程序而是直接使用 mesos master url,它可以完美地工作:--master mesos://localhost:5050(客户端模式)。根据documentation , Mesos 集群不支持集群模式,但是他们给出了另一个集群模式的指令 here .所以有点困惑?我的问题是:
  • 我怎样才能让它工作?
  • 如果我直接从主节点提交应用程序/jar,我应该使用客户端模式而不是集群模式吗?
  • 如果我只有一台计算机,我是否应该生成 1 个或多个 mesos 从属进程。基本上,我有许多 Spark 作业,不想对资源进行静态分区。但是在没有静态分区的情况下使用 mesos 时,似乎慢了很多?

  • 谢谢。

    最佳答案

    似乎有两件事让您感到困惑:在集群中启动 Spark 应用程序(而不是在本地)和将驱动程序启动到集群中。

    从顶部 Submitting Applications :

    The spark-submit script in Spark’s bin directory is used to launch applications on a cluster. It can use all of Spark’s supported cluster managers through a uniform interface so you don’t have to configure your application specially for each one.



    因此,Mesos 是受支持的集群管理器之一,因此您可以 run Spark apps on a Mesos cluster .

    在撰写本文时,Mesos 不支持将驱动程序启动到集群中,这就是命令行参数 --deploy-mode 的内容。的 ./bin/spark-submit指定。自默认值 --deploy-modeclient你可以省略它,或者如果你想明确指定它,然后使用:
    ./bin/spark-submit --deploy-mode client ...
    

    关于apache-spark - 使用 Dispatcher 的 Spark Mesos 集群模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779516/

    相关文章:

    jar - 如何使用 mesos-execute 运行 jar

    postgresql - Apache Mesos 的持久存储

    haproxy - 如何编写mesos和HAProxy进程的prometheus警报规则?

    linux - 构建mesos时出现libtool错误

    python - Spark异常: Only one SparkContext may be running in this JVM (see SPARK-2243)

    apache-spark - Spark 中的加入和联合组

    hadoop - Google Cloud Dataproc - Spark 和 Hadoop 版本

    linux - 无法使用 dcos 节点 ssh --master-proxy --leader sshing 进入 dcos 节点

    java - Spark 地理瓷砖加入

    apache-spark - 在 csv 文件中写入数据帧会删除字符串列中的前导空格