如何查找现有spark群集的主URL

时间:2015-11-03 16:52:56

标签: apache-spark

目前我正在运行我的程序

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 Executor内存* 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]

4 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:10)

你是当场的。 .setMaster("local[*]")将以自包含模式运行spark。在这种模式下,spark只能利用本地机器的资源。

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

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

但如果你还没有火花星团,我建议你设置Spark Standalone cluster first

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

dse client-tool spark leader-address