Hadoop HDFS指向的是file:///而不是hdfs://。

6
我在CentOS 5上通过Cloudera Manager cdh3u5安装了Hadoop。当我运行以下命令时:hadoop fs -ls /,我期望看到的是hdfs://localhost.localdomain:8020/的内容。然而,它返回的是file:///的内容。现在,我可以通过hadoop fs -ls hdfs://localhost.localdomain:8020/来访问我的hdfs://。但是,在安装其他应用程序(如Accumulo)时,accumulo会自动检测位于file:///中的Hadoop文件系统。问题是,有人遇到过这个问题吗?你是怎么解决的?我查看了类似的问题:HDFS thrift server returns content of local FS, not HDFS,但没有解决这个问题。此外,我在Cloudera Manager cdh4中没有遇到这个问题。
2个回答

11

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

要执行此操作,请将以下内容添加到 core-site.xml 中:

 <property>
  <name>fs.default.name</name>
  <value>hdfs://localhost.localdomain:8020/</value>
</property>
Accumulo困惑的原因是它正在使用相同的默认配置来确定HDFS在哪里...而且它默认为file://

2
显然,现在应该使用 fs.defaultFS 属性,而不是 fs.default.name - Mauricio Morales
没有格式化NameNode,我们能否更改fs.defaultFS? - anand

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。
如果您已经完成了上述步骤,请确保正确部署客户端配置,并指向实际的集群端点。

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