我正在尝试检查任务跟踪器是否在服务器上运行。如何使用Java代码检查?
我不需要命令行解决方案。是否有任何Java API来检查tasktracker的状态?
答案 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响应就足够了。