12

我正在尝试使用以下内容在 hdfs 中列出我的目录:

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:// 列出我的目录?

我在 ubuntu 12.04 上使用 canera 4.3

4

7 回答 7

24

HDFS 未在 50075 运行。要检查您的 hdfs 端口,请在 linux 中使用以下命令

hdfs getconf -confKey fs.default.name

你会得到类似的输出

hdfs://hmaster:54310

并相应地更正您的网址

于 2016-02-16T05:06:11.043 回答
7

在您的 cloudera 管理器上,检查配置项“NameNode 服务 RPC 端口”或“dfs.namenode.servicerpc-address”的名称节点。从那里在 URL 上添加相同的端口号。它应该可以正常工作。在此处输入图像描述

于 2015-08-12T06:52:07.013 回答
2

您的 NN 是否在端口上运行50075?如果您只想列出所有目录,您实际上不必这样做。只需使用hadoop fs -ls /. 这将列出根目录下的所有目录。

于 2013-05-04T11:51:38.683 回答
2

在 /usr/local/hadoop/etc/hadoop/core-site.xml

代替localhost,使用0.0.0.0即。

更改 <value>hdfs://localhost:50075</value>

<value>hdfs://0.0.0.0:50075</value>

这为我解决了问题

于 2015-08-17T05:53:50.073 回答
0

你能检查你的主机名吗?您的 /etc/hostname 文件和 /etc/hosts 文件中应该有相同的名称(ubuntu)。

于 2013-07-17T03:53:22.790 回答
0

确保 NN 的 tcp 端口位于 hdfs-site.xml 中定义的 50075

<property>
<name>dfs.namenode.rpc-address.nn1</name>
<value>r101072036.sqa.zmf:9000</value>
</property>

我的问题是我使用 http-address 端口与 NN 连接,这会导致与您相同的异常。

http 端口也在 hdfs-site.xml 中配置:

<property>
<name>dfs.namenode.http-address.nn1</name>
<value>r101072036.sqa.zmf:8000</value>
</property>
于 2014-07-11T11:34:56.540 回答
0

出现此错误的原因是:

  1. 它无法与namenode联系
  2. Namenode 可能没有运行(你可以通过运行jps命令来检查它。)
  3. 杀死该特定端口中正在运行的内容

netstat -tulpn | grep 8080 通过和检查特定端口中正在运行的内容kill -9 <PID>

  1. 重启namenode
于 2018-02-09T16:45:42.080 回答