【问题标题】:hadoop hdfs points to file:/// not hdfs://hadoop hdfs 指向 file:/// 而不是 hdfs://
【发布时间】:2012-09-12 15:06:32
【问题描述】:

所以我在 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 文件系统:///

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

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

【问题讨论】:

    标签: hadoop hdfs cloudera


    【解决方案1】:

    默认情况下,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://

    【讨论】:

    • 显然,该属性现在应该是fs.defaultFS,而不是fs.default.name
    • 不格式化namenode我们可以改变fs.defaultFS吗?
    【解决方案2】:

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

    dfs.name.dir,

    dfs.namenode.name.dir,

    dfs.data.dir,

    dfs.datanode.data.dir,

    fs.default.name

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

    格式化HDFS名称节点:

    hadoop 名称节点格式

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

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

    【讨论】:

      猜你喜欢
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      相关资源
      最近更新 更多