hadoop hdfs指向file:///而不是hdfs://

时间:2012-09-12 15:06:32

标签: hadoop hdfs cloudera

所以我在CentOS 5上通过Cloudera Manager cdh3u5安装了Hadoop。当我运行cmd时

hadoop fs -ls /

我希望看到hdfs://localhost.localdomain的内容:8020 /

但是,它已返回 file:///

的内容

现在,不言而喻,我可以通过

访问我的 hdfs://

hadoop fs -ls hdfs://localhost.localdomain:8020/

但是当安装其他应用程序(如Accumulo)时,accumulo会自动检测文件中的Hadoop Filesystem:///

问题是,有没有人遇到过这个问题,你是如何解决的?

我看了HDFS thrift server returns content of local FS, not HDFS,这是一个类似的问题,但没有解决这个问题。 另外,我不会用Cloudera Manager cdh4来解决这个问题。

2 个答案:

答案 0 :(得分:10)

默认情况下,Hadoop将使用本地模式。您可能需要在fs.default.name中将hdfs://localhost.localdomain:8020/设置为$HADOOP_HOME/conf/core-site.xml

为此,请将其添加到core-site.xml

 <property>
  <name>fs.default.name</name>
  <value>hdfs://localhost.localdomain:8020/</value>
</property>

Accumulo之所以感到困惑,是因为它使用相同的默认配置来确定HDFS的位置......并且它默认为file://

答案 1 :(得分:0)

我们应该指定数据节点数据目录和名称节点元数据目录。

dfs.name.dir,

dfs.namenode.name.dir,

dfs.data.dir,

dfs.datanode.data.dir,

fs.default.name

在core-site.xml文件和格式名称节点中。

格式化HDFS名称节点:

hadoop namenode -format

输入“是”以确认格式名称节点。重启HDFS服务并部署客户端配置以访问HDFS。

如果您已经执行了上述步骤。确保正确部署客户端配置,并指向实际的集群端点。