4

私の構成:

サーバー クラスのマシン クラスター (4 台のマシン)、それぞれに RHEL、8GB RAM、クアッド コア プロセッサを搭載。マシン「B1」をマスターに設定し、残りのマシンをスレーブ (B2、B3、B4) に設定します。dfs-start.sh を開始すると、名前ノードが B1 の 53410 で起動しました。残りのノードは 53410 の B1 に接続できません!

これが私がこれまでにしたことです:

  1. B2、B3、B4 から「telnet B1 53410」を試行 - 接続が拒否されました。
  2. B2、B3、B4、およびその逆から B1 への ssh を試行しました - 問題ありません。正常に動作します。
  3. 53410 を 55410 に変更し、dfs を再起動しました。同じ問題 - このポートでも接続が拒否されました。
  4. B1でファイアウォールを無効にしました(iptables停止)-B2、B3、B4から接続しようとしました-telnetで失敗しました。
  5. すべてのノードでファイアウォールを無効にし、再試行しましたが、53410 への接続に再び失敗しました。
  6. ftp が B2、B3、B4 から B1 に動作していることを確認し、ftp サービスを停止し (service vsftpd stop)、標準の ftp ポート (21) で dfs を起動しようとしました。namenode が起動し、残りのノードが再び失敗しています。B2、B3、B4 から ftp ポートに telnet することさえできません。
  7. 「telnet localhost 53410」は B1 で正常に動作します。

すべてのノードは互いに到達可能であり、すべての /etc/hosts は IP アドレスの正しいマッピングでセットアップされています。だから、私はこの時点でほとんど無知です。いったいなぜ namenode は接続を拒否するのでしょうか。namenode ポートで外部クライアントがリモート接続できるようにするために、hadoop conf に設定があるのでしょうか?

4

4 に答える 4

4

以前の回答は私には明確ではありませんでした。基本的に、各 Hadoop サーバー (ノードまたは名前ノード) はサーバーを作成し、ルックアップ名に関連付けられた IP をリッスンします。

3 つのボックス (box1、box2、box3) があるとします。/etc/hosts ファイルは次のようになります。

127.0.0.1 localhost
192.168.10.1 box1
192.168.10.2 box2
192.168.10.3 box3

それ以外の :

127.0.0.1 localhost box1
192.168.10.2 box2
192.168.10.3 box3
//(this is incorrect, box one will be listening exclusively on 127.0.0.1)
于 2012-02-22T20:10:20.940 に答える
2

これを修正しました.. /etc/hosts のエントリが間違っていました。すべてのノードがループバックでマスターに接続していました。

于 2011-09-15T13:21:06.927 に答える
1

conf/core-site.xmlで変更してみてください

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:54310</value>
</property>

ローカルホストからあなたのマシン名に?

于 2011-09-15T08:17:58.337 に答える
0

適切なファイル権限で DataNode を設定します。

chmod 755 /home/svenkata/hadoop/datanode/
于 2014-02-18T03:52:15.243 に答える