所以我在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来解决这个问题。
答案 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。
如果您已经执行了上述步骤。确保正确部署客户端配置,并指向实际的集群端点。