port 9000: Connection refused
エラーに悩まされています。
私はUbuntu 14.04
に取り組んでおり、Hadoop
を単一のJavaプロセスとして非分散モードで実行しようとすると問題に直面しました(比較 Hadoop 2.4.1ドキュメント ) 。このエラーに関するHadoop Wikiの提案に従うことを試みました( hadoop/ConnectionRefused )が、成功しませんでした(私は初心者Ubuntu
ユーザーであり、与えられた提案を100%理解することさえ難しいと感じています)。私は stackoverflowの質問 を投稿しましたが、そこからport 9000 Connection
に何らかの一般的な問題があると結論付けました。
telnet出力:
martakarass@marta-komputer:~$ telnet localhost 9000
Trying 127.0.0.1...
telnet: Unable to connect to remote Host: Connection refused
nmap出力:
martakarass@marta-komputer:~$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-27 11:09 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00022s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open Microsoft-ds
631/tcp open ipp
902/tcp open iss-realsecure
Nmap done: 1 IP address (1 Host up) scanned in 0.08 seconds
Netcat設定:
次のコマンドを使用して、9000ポートを強制的に開いてみました。
nc -k -l 9000
しかし、それはうまくいきませんでした(上記のリンクされたスタンドアロン操作を実行できませんでした)。
Googleの調査結果から判断すると、この問題は非常に一般的であり、特に「管理者ジョブ関連の問題」が苦手な人にとっては大きな闘争を引き起こしていることがわかります。私はそれらに属しているので、私は親切に以下の質問への答えを求めます:
Q1:そのような問題の一般的な原因は何ですか? (一部の素人向け入門的な言葉/ポートや接続などに関連する基本的な問題についての参照は非常に歓迎されます)。
Q2:この問題への対処方法は?
更新。
Sudo netstat -nlp | grep :9000
何も返しません。
最終的に、私はなんとかmake私のポート9000をリッスンしました/etc/ssh/sshd_config
ファイルに次の行を追加します。
Port 9000
私はこれに従いました serverguide/openssh-server (元のファイルのコピーの作成、sshdサーバーアプリケーションの再起動などに関する重要なコメントも含まれています)
この後、私は見ることができます:
telnet出力:
martakarass@marta-komputer:~$ telnet localhost 9000
Trying 127.0.0.1...
Connected to localhost.
nmap出力:
martakarass@marta-komputer:~$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-01 18:28 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00023s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open Microsoft-ds
631/tcp open ipp
902/tcp open iss-realsecure
9000/tcp open cslistener
Nmap done: 1 IP address (1 Host up) scanned in 0.05 seconds
netstat出力:
martakarass@marta-komputer:~$ Sudo netstat -nlp | grep :9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 16397/sshd
tcp6 0 0 :::9000 :::* LISTEN 16397/sshd
TL; DR最初、詳細は次のとおりです
「接続拒否」は、指定したTCPポートでリッスンしていないときに、コンピューターまたはサーバー(またはローカルの自分のコンピューター)のサービスに接続しようとしたときに表示されるエラーです。間違ったポートまたはサービスが開始されなかった場合)、またはファイアウォールがリクエストを無視する代わりに明示的に接続を拒否した場合(非常に一般的な動作ではありません)。
そしてもう少し詳細:
TCP(UDPサービスはセッションレス)でのみ発生する可能性があり、このエラーはシステム管理者にとって非常に一般的です。
クライアントアプリケーションがTCPサービスに接続すると、SYNフラグが設定された最初のパケットが送信されます。単純化すると、それに対する2つの可能な答えがあります。
これを修正するにはどうすればよいですか?
確認できることがいくつかあります。クライアント側の適切なポートを照会していますか?サービスは開始されましたか?適切なポートでリッスンしていますか?
これらの3つの質問は、一般的に問題の解決に役立ちます。
server(サービスを実行するマシン)に入力するクイック汎用コマンド
サービスが予期されるポートでリッスンしていることを確認する
ss -nat | grep <enter port number here> | grep LISTEN
古いシステムの一部の人々もこれを使用する可能性があります
netstat -an | grep <enter port number here> | grep LISTEN
ポート番号のように見えるものがここに表示されない場合、サービスは開始されていないか、指定したポート番号でリッスンしていないかのいずれかです。
サービスが実行されていることを確認する
service <service name> status
Iptablesを無効にしてみてください:
Sudo service iptables stop && Sudo service ip6tables stop
次に、hadoopを再起動します。これで問題が解決した場合、ファイアウォールを適切に構成する必要があります。