2016-09-11 12 views
0

私はhdfs(namenode、secodnarynamenode、datanode)に1台のマシンを稼働させています。私は同じマシンからそれらを実行するときに 'put'のようなhdfs操作を実行することができますが、 'ls'のような他の操作は正常に動作しますが、リモートでは機能しません。リモートでhdfsにアクセスできない

私のリモートhdfsクライアントはnamenodeに接続できますが、datanodeには接続できないと思います。 Namenode Webコンソールには、localhost上で1つのデータノードが実行されていることが示されています。おそらく問題です.htfsクライアントが到達できるように、ipアドレスにバインドする必要があります。 私はデータノード関連のプロパティを変更しようとしました:

<property> 
<name>dfs.datanode.address</name> 
<value>192.168.1.128:50010</value> 
</property> 
<property> 
<name>dfs.datanode.http.address</name> 
<value>192.168.1.128:50075</value> 
</property> 
<property> 
<name>dfs.datanode.ipc.address</name> 
<value>192.168.1.128:50020</value> 
</property> 

が、それは助けにはなりませんでした。興味深いことに、私は192.168.1.128:50075を使用してdatanodeのUIにアクセスすることができ、192.168.1.128:50075のデータアノードが実行されていることを示すアイデアはありますか?

答えて

0

ポート50075はdfs.datanode.http.addressです。 dfs.datanode.address(データ転送用のデータノードのアドレスとポート)もあり、デフォルトは50010です(hdfs-default.xml referenceを参照)。

聴取中のポートであり、アクセス可能かどうかを確認してください。

データノードの問題についてのあなたの推測は正しいと思われます。ls操作はnamenodeだけで処理されます。 putの場合は、データノードに直接接続する必要があります。

+0

UPD:提供されている設定をもう一度読んでください。 50010は間違いなく耳を傾けます。アクセシビリティのみをチェックする必要があります。 – patrungel

+0

デバッグ中にhdfsからファイルを読み込む小さなアプリケーションを作成しましたが、データノードのアドレスとしてnamenodeから返された「localhost」が表示されます –

+0

興味深いことに、また、192.168.1.128はノード自体でどのように解決されますか? – patrungel