我已按照说明here启用指标导出到Prometheus的spark。为了不仅从作业,而且从master和worker中启用度量导出,我为所有spark驱动程序,master,worker和executor启用了jmx代理。
这会导致问题,因为spark worker和executor在同一台机器上并置,因此,我需要将不同的jmx端口传递给它们。如果我在spark worker和executors之间有一个1-1关系,这不是问题,但是,它在每个工作者场景的多个执行程序中出现故障,因为在spark工作期间无法为特定执行程序指定不同的端口提交。
当以集群模式提交作业时情况更糟,因为驱动程序,工作程序和执行程序都可能位于同一节点上。
你是如何解决这个问题的?