如何知道TaskTracker是否正在运行Java代码?

时间:2017-06-22 19:12:31

标签: hadoop

我正在尝试检查任务跟踪器是否在服务器上运行。如何使用Java代码检查?

我不需要命令行解决方案。是否有任何Java API来检查tasktracker的状态?

1 个答案:

答案 0 :(得分:0)

一种解决方案是调用服务的HTTP端点以获取JMX指标JSON转储URL。您可以使用您选择的语言的任何HTTP客户端库来执行此操作。你提到了TaskTracker,所以听起来你正在运行Hadoop 1.这是指定HTTP端点的配置属性:

<property>
  <name>mapred.task.tracker.http.address</name>
  <value>0.0.0.0:50060</value>
  <description>
    The task tracker http server address and port.
    If the port is 0 then the server will start on a free port.
  </description>
</property>

假设您没有覆盖此内容,则使用GET请求调用的网址为http://<host>:50060/jmx

许多Hadoop守护程序公开HTTP服务器并响应/jmx URL。此解决方案不仅限于TaskTracker。 JSON响应中的特定度量有效负载对于每个守护进程都是不同的,但如果您只对守护进程是否正在运行感兴趣,那么只需检查成功的HTTP响应就足够了。