2017-06-22 55 views

回答

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> 

假设你没有覆盖这一点,URL用GET请求调用会http://<host>:50060/jmx

许多Hadoop守护进程暴露一个HTTP服务器,并在/jmx网址作出反应。这个解决方案不仅限于TaskTracker。 JSON响应中的特定指标有效负载在每个守护进程中会有所不同,但是如果您只关心守护进程是否正在运行,那么只需检查成功的HTTP响应就足够了。

+0

谢谢,克里斯。还有一个问题:如果我收到'ERR_CONNECTION_REFUSED'表示TaskTracker已成功关闭? –

+0

@SavanPatel,拒绝TCP连接可能意味着1)进程不再运行或2)进程刚刚启动,但有一个简短的窗口,它没有为HTTP服务器绑定侦听套接字。实际上,这个时间窗口很短,所以这种区别对监视仪表板等事情来说并不重要。我想我会提到它的完整性。 –

+0

@SavanPatel,对此有帮助?如果是这样,那么请考虑接受答案。 https://stackoverflow.com/help/someone-answers –

相关问题