如何通过 java 代码检查 cloudera 服务如 hive,Impala 是否为 运行?
How to check if the cloudera services like hive, Impala are running or not through java code?
我想 运行 一些配置单元查询,然后需要收集不同的指标,如 hdfs 字节 read/write。为此,我编写了 java 代码。但是在 运行ning 代码 之前,我只想检查 cloudera 服务,如 hive、impala、yarn 运行ning 或 not。如果 运行ning 那么代码需要执行,否则就退出。有没有办法通过java代码检查服务状态?
Sampson S 给了你一个正确的答案,但实现起来并不容易。这些信息可通过 Cloudera 提供的 Cloudera Manager (CM) 工具的 REST API 获得。您可以让 Java 程序向 CM 发出 Web GET 请求,解析 JSON 结果并使用它来做出决定。或者,您可以查看其 API 背后的代码以进行更直接的查询。
但我认为你应该问 "Why?" 你想要完成什么?您是否在复制 CM 已经提供的功能?在此处询问有关 SO 的问题时,提供一些上下文总是有帮助的。看起来你可能是新来的环境。也许它已经做了你想要的。
我想 运行 一些配置单元查询,然后需要收集不同的指标,如 hdfs 字节 read/write。为此,我编写了 java 代码。但是在 运行ning 代码 之前,我只想检查 cloudera 服务,如 hive、impala、yarn 运行ning 或 not。如果 运行ning 那么代码需要执行,否则就退出。有没有办法通过java代码检查服务状态?
Sampson S 给了你一个正确的答案,但实现起来并不容易。这些信息可通过 Cloudera 提供的 Cloudera Manager (CM) 工具的 REST API 获得。您可以让 Java 程序向 CM 发出 Web GET 请求,解析 JSON 结果并使用它来做出决定。或者,您可以查看其 API 背后的代码以进行更直接的查询。
但我认为你应该问 "Why?" 你想要完成什么?您是否在复制 CM 已经提供的功能?在此处询问有关 SO 的问题时,提供一些上下文总是有帮助的。看起来你可能是新来的环境。也许它已经做了你想要的。