微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark on Yarn - Prometheus 发现

如何解决Spark on Yarn - Prometheus 发现

我正在尝试将 spark 与 prometheus 集成。我们有 spark 2 和 spark 3。对于 spark 2,我知道我可以运行 jmx_exporter。 Spark 3 有一个新的内置 PrometheusServlet,非常棒。我们使用 YARN 而不是 k8s 在本地运行 spark。

我的问题是如何动态发现 prometheus 抓取目标。据我了解,没有静态的单个中央 Spark 服务器可以指向,而是每个应用程序都被打包到一个纱线容器中并有自己的指标。除非有一种方法可以聚合这些指标(例如在 Spark 历史服务器中)或每个作业都有一个静态的可预测地址?

当我提交一个长时间运行的火花流应用程序时,我希望它的指标开箱即用地显示在 Prometheus 中。我知道新的 PrometheusServlet 可以使用注释自动发现 k8s,我想为纱线实现类似的功能

到目前为止我发现了什么:

  • 我可以让 prometheus 抓取 pushgateway,并在运行 spark-submit 时让我的应用程序在那里发送指标。我发现了一个 custom sink 可以做到这一点。但是 pushgateway 引入了它自己的问题,所以希望避免它。
  • 使用 Prometheus file Service Discovery 机制在那里添加目标。但是如何自动执行此操作,而不必每次提交新作业时都手动编辑 json 文件?我发现 prometheus 没有用于添加目标的 API,并没有编写一个在我运行 spark-submit 时远程更改 json 文件的作业,感觉有点麻烦。

欢迎对优雅的解决方案提出任何建议,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。