【问题标题】:How to find the master URL for an existing spark cluster如何查找现有 Spark 集群的主 URL
【发布时间】:2016-02-03 22:34:38
【问题描述】:

目前我正在运行我的程序

val conf = new SparkConf()
  .setAppName("Test Data Analysis")
  .setMaster("local[*]")
  .set("spark.executor.memory", "32g")
  .set("spark.driver.memory", "32g")
  .set("spark.driver.maxResultSize", "4g")

即使我在一个由 5 台机器组成的集群上运行(每台机器都有 376 GB 物理 RAM)。我的程序出错了java.lang.OutOfMemoryError: Java heap space

我的数据量很大......但没有大到超过 32 GB 执行器内存 * 5 个节点。

我怀疑这可能是因为我使用“本地”作为我的主人。我看过文档说使用spark://machinename:7070

但是我想知道我的集群...如何确定这个 URL 和端口

编辑:我可以看到文档谈到了运行名为“spark-master.sh”的东西以使节点成为主节点。

在我的情况下,火花集群是由其他人设置/维护的,所以我不想通过启动自己的主节点来更改拓扑。

如何查询并找出哪个节点是现有的主节点。

我已经尝试在集群中随机选择一个节点,然后尝试 'spark://node:7077' 但这不起作用并给出错误

[15/11/03 20:06:21 WARN AppClient$ClientActor: Could not connect to
 akka.tcp://sparkMaster@node:7077: 
akka.remote.EndpointAssociationException: Association failed with 
[akka.tcp://sparkMaster@node:7077]

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    使用 shell 查看 spark DSE(Datastax) 中的主节点

    dse client-tool spark leader-address
    

    【讨论】:

      【解决方案2】:

      使用命令获取URL信息sc.uiWebUrl

      【讨论】:

      • 这有效,但您需要添加扩展答案。
      【解决方案3】:

      我发现--master yarn-cluster 效果最好。这样可以确保 spark 使用 hadoop 集群的所有节点。

      【讨论】:

      • 如何/在哪里附加这些行?在命令 setMaster() 内?
      • 无法理解如何设置主 URL,将其视为远程客户端。我们不应该提供 IP/Port 吗?如果是这样如何找到这个网址?
      • 你在哪里输入这个?在 hdfs 中,在 bash 中?
      • @math_law 他的意思是把它作为一个选项传递。有关示例,请参阅this URL。你也可以.setMaster("yarn-cluster")
      【解决方案4】:

      你就在现场。 .setMaster("local[*]") 将以独立模式运行 spark。在这种模式下,spark 只能利用本地机器的资源。

      如果您已经在物理集群上设置了 Spark 集群。解决方案很简单,检查http://master:8088 master 指向的火花主机。在那里你可以看到 spark master URI,默认是spark://master:7077,如果你有一个 spark 独立集群,实际上有相当多的信息在那里。

      但是,我看到很多关于 SO 的问题声称这不适用于许多不同的原因。使用 spark-submit 实用程序更不容易出错,See usage

      但如果您还没有 Spark 集群,我建议您设置一个 Spark Standalone cluster first

      【讨论】:

      • 我确实用集群中的节点名称替换了 master。但仍然是同样的问题。如果我这样做 http://<machinename>:8088 它在浏览器中什么也不返回。我正在使用 spark-submit,但我认为它默认使用本地作为 master。
      • with spark-submit 从 spark 应用程序中删除 .setMaster("local[*]"),并将 --master spark://master:7077 传递给 spark-submit。这一切都记录在上面给出的链接中。
      猜你喜欢
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      相关资源
      最近更新 更多