タスクトラッカーがサーバー上で実行されているかどうかを確認しようとしています。 Javaコードを使用して確認するにはどうすればよいですか?TaskTrackerがJavaコードで実行されているかどうかを知る方法?
コマンドラインソリューションは必要ありません。 tasktrackerのステータスを確認するJava APIはありますか?
タスクトラッカーがサーバー上で実行されているかどうかを確認しようとしています。 Javaコードを使用して確認するにはどうすればよいですか?TaskTrackerがJavaコードで実行されているかどうかを知る方法?
コマンドラインソリューションは必要ありません。 tasktrackerのステータスを確認するJava APIはありますか?
解決策の1つは、JMXメトリックJSONダンプURLのサービスのHTTPエンドポイントを呼び出すことです。これを行うには、使用する言語で任意のHTTPクライアントライブラリを使用できます。あなたはHadoopの1を実行しているように聞こえる。ここHTTPエンドポイントを指定する構成プロパティがあるので、あなたは、TaskTrackerを述べた:
<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リクエストを呼び出すためのURLは次のようになりますhttp://<host>:50060/jmx
。
多くのHadoopデーモンはHTTPサーバーを公開し、/jmx
URLに応答します。このソリューションは、TaskTrackerだけに限定されません。 JSONレスポンスの特定のメトリックペイロードはデーモンごとに異なりますが、デーモンが実行されているかどうかだけに関心がある場合は、HTTP応答の成功を確認するだけで十分です。
ありがとう、クリス。ただもう一つの質問: 'ERR_CONNECTION_REFUSED'を受け取った場合、TaskTrackerが正常に終了したことを意味しますか? –
@SavanPatel、TCP接続が拒否された場合、1)プロセスがもう実行されていないか、2)プロセスが開始されたばかりですが、HTTPサーバーのリスニングソケットにバインドされていない簡単なウィンドウがあります。実際には、その時間枠は簡単なので、この区別はダッシュボードの監視などの場合は重要ではありません。私は完全性のためにそれを言いたいと思った。 –
@SavanPatel、これは役に立ちましたか?もしそうなら、答えを受け入れることを検討してください。 https://stackoverflow.com/help/someone-answers –