我正在尝试将 Spark 与 Prometheus 集成。我们有 Spark 2 和 Spark 3。对于 Spark 2,我知道我可以运行jmx_exporter。Spark 3 有一个新的内置 PrometheusServlet,非常棒。我们使用 YARN 在本地运行 Spark,而不是 k8s。
我的问题是如何动态发现普罗米修斯抓取目标。据我了解,没有静态的单一中央 Spark 服务器可以指向,而是每个应用程序都被打包到一个纱线容器中并具有自己的指标。除非有办法聚合这些指标(例如在 Spark 历史服务器中)或者为每个作业都有一个静态的可预测地址?
当我提交一个火花流长时间运行的应用程序时,我希望它的指标能够立即显示在 Prometheus 中。我知道新的 PrometheusServlet 可以使用注释自动发现 k8s,我想为纱线实现类似的功能。
到目前为止我发现了什么:
欢迎任何关于优雅解决方案的建议,谢谢!
hadoop-yarn apache-spark prometheus jmx-exporter prometheus-pushgateway