3

我已经配置了连接到 Cassandra 集群的独立 spark 集群,其中有 1 个主服务器、1 个从属服务器和 Thrift 服务器,该服务器用作 Tableau 应用程序的 JDBC 连接器。无论如何,当我启动任何查询工作人员时,奴隶都会出现在工作人员列表中,似乎没有被用作执行者(使用了 0 个核心)。所有工作负载都由主执行器执行。同样在 Thrift Web 控制台中,我观察到只有一个执行程序处于活动状态。

基本上,我希望 spark 集群的两个执行器上的分布式工作负载能够实现更高的性能。

从主日志:

2019-03-26 15:36:52 INFO Master:54 - 我被选为领导了!新状态:ALIVE 2019-03-26 15:37:00 INFO Master:54 - Registering worker worker-ip:37678 with 16 cores, 61.8 GB RAM

从工人日志:

2019-03-26 15:37:00 INFO Worker:54 - 成功注册 master spark://master-hostname:7077

我的 spark-defaults.conf 是:

spark.driver.memory=50g
spark.driver.maxResultSize=4g

spark.sql.thriftServer.incrementalCollect=false
spark.sql.shuffle.partition=17
spark.sql.autoBroadcastJoinThreshold=10485760
spark.sql.inMemoryColumnarStorage.compressed=true
spark.sql.inMemoryColumnarStorage.batchSize=10000

spark.cores.max=32
spark.executor.cores=16
spark.memory.offHeap.enabled=true
spark.memory.offHeap.size=1g

pic1 工人

在此处输入图像描述

pic2 执行者

在此处输入图像描述

任何帮助高度赞赏。

4

1 回答 1

3

当 spark 没有在工人身上执行时,有一些主要的嫌疑人需要消除。

  1. 您在 Web UI 中看到工作人员了吗?
  2. 防火墙是否允许您发送实际工作负载并获取响应?有关更多详细信息,请参阅此现有答案
  3. 从机是否有足够的空闲资源来接受这项工作?我注意到您需要 16 个内核,也许这超出了可用的范围?
  4. 需要容量吗?考虑并行提交多个作业(需要执行器,并且资源需求足够小),以确保它不仅仅是“巧合地”避开节点。继续,直到你发现它真的不适合你的主节点。

如果所有这些都失败了,可能需要更多的上下文。

  • 您不分享任何错误消息,真的没有任何错误吗?
  • 您使用的是哪种集群(Hadoop、Mesos?)
于 2019-04-10T18:54:38.040 回答