以下を使用して、hdfsにdirをリストしようとしています。
ubuntu@ubuntu:~$ hadoop fs -ls hdfs://127.0.0.1:50075/
ls: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException:
Protocol message end-group tag did not match expected tag.;
Host Details : local Host is: "ubuntu/127.0.0.1"; destination Host is: "ubuntu":50075;
これが私の/ etc/hostsファイルです
127.0.0.1 ubuntu localhost
#127.0.1.1 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Hdfs://を適切に使用してdirを一覧表示するにはどうすればよいですか?
私はubuntu12.04でcouldera4.3を使用しています
HDFSは50075で実行されていません。hdfsポートを確認するには、Linuxで次のコマンドを使用します
hdfs getconf -confKey fs.default.name
次のような出力が得られます
hdfs://hmaster:54310
それに応じてURLを修正してください
/usr/local/hadoop/etc/hadoop/core-site.xml内
localhostの代わりに、.0.0.を使用します。
変化する <value>hdfs://localhost:50075</value>
から
<value>hdfs://0.0.0.0:50075</value>
これは私にとって問題を解決しました
NNはポート50075
で実行されていますか?すべてのディレクトリを一覧表示するだけの場合は、実際にこれを行う必要はありません。 hadoop fs -ls /
を使用するだけです。これにより、ルートディレクトリの下にあるすべてのディレクトリが一覧表示されます。
このエラーは、次の理由で発生します。
jps
コマンドを実行して確認できます)。netstat -tulpn | grep 8080
およびkill -9 <PID>
によって、特定のポートで何が実行されているかを確認します
ホスト名を確認できますか?/etc/hostnameファイルと/ etc/hostsファイルに同じ名前(ubuntu)が含まれている必要があります。
NNのtcpポートがhdfs-site.xmlで定義されている50075にあることを確認してください
<property>
<name>dfs.namenode.rpc-address.nn1</name>
<value>r101072036.sqa.zmf:9000</value>
</property>
私の問題は、httpアドレスポートを使用してNNに接続することです。これにより、同じ例外が発生します。
httpポートもhdfs-site.xmlで構成されます。
<property>
<name>dfs.namenode.http-address.nn1</name>
<value>r101072036.sqa.zmf:8000</value>
</property>