2017-06-22 96 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 –

相關問題