1

我正在使用 Spark 运算符在 Kubernetes 上运行 Spark。( https://github.com/GoogleCloudPlatform/spark-on-k8s-operator )

我正在尝试在 Spark 驱动程序和执行程序 pod 中运行 Java 代理,并通过 Kubernetes 服务将指标发送给 Prometheus 操作员。

我正在使用这个例子 https://github.com/GoogleCloudPlatform/spark-on-k8s-operator/blob/master/examples/spark-pi-prometheus.yaml

Java 代理会在短时间内公开端口 8090 上的指标(我可以通过端口转发 kubctl port-forward < spark-driver-pod-name > 8090:8090 验证),该服务也公开了一些指标分钟(可以通过端口转发 kubctl port-forward svc/< spark-service-name > 8090:8090 验证)。

Promethues 能够在 prometheus 中注册这些 pod 的 URL,但是当它试图抓取指标(每 30 秒运行一次)时,pod 的 URL 已关闭。

如何让 Java 代理 JMX 导出器长时间运行,直到驱动程序和执行程序完成工作。你能在这里指导或帮助我吗,以前谁遇到过这种情况?

4

1 回答 1

1

Prometheus 需要每 5 秒抓取一次指标(指标可能不准确),或者您需要使用 pushgateway,如本博客所述(https://banzaicloud.com/blog/spark-monitoring/)将指标推送到 Prometheus

将指标送到 Prometheus批处理作业的最佳实践。 Prometheus中提取指标是长期运行服务(例如:REST 服务)的最佳方法

于 2020-06-19T21:28:06.150 回答