我正在尝试使用以下内容在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上使用couldera 4.3
答案 0 :(得分:22)
HDFS未以50075运行。 要检查hdfs端口,请在linux中使用以下命令
{
outerKey1 = {
someKey = “Some String";
disableAutoFill = 1;
disableABC = 1;
disableXYZ = 1;
disableThis = 1;
disableThat = 1;
disableBla = 1;
disableBlaBla= 1;
disableBlaBlaBlaBla = 1;
disableBlaBlaBlaBlaBlaBla= 1;
};
outerKey2 = {
someKey = (
{
markPath = 0;
title = "Some Name";
url = "http://www.BlaBla.com";
},
{
markPath = 0;
title = "Some Name";
url = "http://www.something.com";
},
{
markPath = 0;
title = Yahoo;
url = "http://www.yahoo.com";
},
{
Path = 0;
title = “title";
url = "http://www.title.com";
}
);
enabled = 1;
};
outerKey3 = {
enabled = 1;
gatewayIP = "192.172.169.10";
gatewayPort = 8080;
gatewayRoutingUrls = (
"www.kuchbhi.com",
"www.oh-teri.com"
);
};
outerKey4 = {
SomeCategories = (
SomeCategories,
someOtherCategories
);
defaultUrl = "www.meriapniwebsite.com";
enabled = 1;
exceptionUrls = (
"www.kuchbhihojay.com"
);
filterUrls = (
"www.kuchtobhi.com",
"www.kyaaapjhandhai.com"
);
filteringFlag = 1;
};
}
您将获得类似
的输出hdfs getconf -confKey fs.default.name
并相应更正您的网址
答案 1 :(得分:7)
在您的cloudera管理器上,检查名称节点上的配置项" NameNode服务RPC端口"或" dfs.namenode.servicerpc-address"。从URL上添加相同的端口号。它应该工作正常。
答案 2 :(得分:2)
您的NN是否在端口50075
上运行?如果你只想列出所有目录,你实际上不必这样做。只需使用hadoop fs -ls /
即可。这将列出根目录下的所有目录。
答案 3 :(得分: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>
这解决了我的问题
答案 4 :(得分:0)
你能检查你的主机名吗? / etc / hostname文件和/ etc / hosts文件中应该有相同的名称(ubuntu)。
答案 5 :(得分:0)
确保您的NN的tcp端口在50075上,该端口在hdfs-site.xml中定义
<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>
答案 6 :(得分:0)
出现此错误的原因是:
jps
命令来检查它。) netstat -tulpn | grep 8080
检查特定端口正在运行的内容
和kill -9 <PID>