Hadoop FS命令显示的是本地文件系统而不是HDFS。

8
我在几台笔记本电脑中安装了Hadoop,以形成一个Hadoop集群。首先我们使用伪分布模式进行了安装,在所有电脑上除了一台外,一切都很完美(即所有服务都可以运行,并且当我使用hadoop fs进行测试时,它会显示hdfs)。在遇到问题的笔记本电脑上,`hadoop fs -ls命令显示本地目录的信息,而不是hdfs-cat-mkdir-put命令也是如此。我做错了什么?

任何帮助将不胜感激。

这是我的core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
 <name>hadoop.tmp.dir</name>
 <value>/home/hduser/hdfs_dir/tmp</value>
 <description></description>
</property>

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

我必须说,这个文件对于所有其他笔记本电脑都是相同的,它们工作正常。

1
你能分享一下core-site.xml文件吗?想知道你是否已将“fs.default.name”属性的默认值从file:///更改为其他值。 - Magham Ravi
3个回答

6
我遇到了同样的问题,必须确保 fs.default.name 的值包含一个末尾的 /,以便引用路径组件:
<property>
 <name>fs.default.name</name>
 <value>hdfs://localhost:54310/</value>
 <description>.</description>
</property>

让我试一下,然后我会回来给你答复... :) - nanounanue

4

检查 core-site.xml 中的 fs.default.name 是否指向正确的数据节点,例如:

<property>
     <name>fs.default.name</name>
     <value>hdfs://target-namenode:54310</value>
</property>

2
如果在core-site.xml中fs.default.name指向hdfs://localhost:54310/(无论是否包含尾随的/),即使您遇到相同的问题,那么您可能正在查看错误的配置文件。在我的情况下,它是Cloudera的CDH4,检查符号链接:
ls -l /etc/hadoop/conf
** /etc/hadoop/conf -> /etc/alternatives/hadoop-conf
ls -l /etc/alternatives/hadoop-conf
**
/etc/alternatives/hadoop-conf -> /etc/hadoop/conf.cloudera.yarn1
早期我使用的是MRv1并迁移到MRv2(YARN),升级后符号链接已被破坏,如下所示:
ls -l /etc/hadoop/conf
** /etc/hadoop/conf -> /etc/alternatives/hadoop-conf
ls -l /etc/alternatives/hadoop-conf
**
/etc/alternatives/hadoop-conf -> /etc/hadoop/conf.cloudera.mapreduce1
ls -l /etc/hadoop/conf.cloudera.mapreduce1
ls: cannot access /etc/hadoop/conf.cloudera.mapreduce1: No such file or directory
此外,运行update-alternatives以使/etc/hadoop/conf.cloudera.mapreduce1路径具有高优先级:
alternatives --display hadoop-conf
hadoop-conf - status is manual.
link currently points to /etc/hadoop/conf.cloudera.mapreduce1
/etc/hadoop/conf.cloudera.hdfs1 - priority 90
/etc/hadoop/conf.cloudera.mapreduce1 - priority 92
/etc/hadoop/conf.empty - priority 10
/etc/hadoop/conf.cloudera.yarn1 - priority 91
Current `best' version is /etc/hadoop/conf.cloudera.mapreduce1.
要删除具有最高优先级的旧链接,请执行以下操作:
update-alternatives --remove hadoop-conf /etc/hadoop/conf.cloudera.mapreduce1
rm -f /etc/alternatives/hadoop-conf
ln -s /etc/hadoop/conf.cloudera.yarn1 /etc/alternatives/hadoop-conf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接