0

「netstat」Linux コマンドを使用して Hadoop Namenode マシンが正しく機能していることを確認したところ、Namenode のプライマリ ポート「8020」が、すべての Hadoop プロセスが適切に接続して適切に動作しているにもかかわらず、積極的にリッスンしているように見えないことに気付きました。さらに、「telnet mydnshostname 8020」を実行して接続を正常に開くことができました。これは、netstat のリストに目立って存在しないにもかかわらず、このソケットが正しくリッスンしていることを示しています。

開いているソケットが netstat のリストに表示されないことに気付いたのはこれが初めてです。Hadoop Namenode 通信が独自のIPC プロトコルに基づいているためでしょうか。このプロトコルは TCP ベースのようですが、表示されない理由がわかりません。

要約すれば:

  1. netstat が見逃す開いているソケットがあるのはなぜですか?
  2. netstat がなんらかの理由で欠落しているソケットを含む、すべてのソケットを表示する低レベルの Linux コマンド/関数はありますか?
4

1 に答える 1

2

これも *facepalm* の瞬間の 1 つです。

TCP ポート 8020 は、「intu-ec-svcdisc」と呼ばれるプロトコルで一般的に使用されるポートでもあることが判明したため、netstat は、ポート 8020 上のすべてのソケットをこのサービス名で識別することにより、役に立ちました。

より一般的/実用的な用語で言えば、特定の開いているソケットを見つけるのに問題があり、ポート番号がわかっている場合は、netstat に「-n」オプションを渡してください。これにより、ポート番号に基づいてプロトコルを識別しようとする試みが停止し、リスト全体を数値で!

于 2013-07-09T19:48:00.267 に答える