确定哪个默认namenode和namenode_port“hadoop fs -ls”正在使用

时间:2015-11-19 00:18:53

标签: hadoop hdfs

我正在运行以下命令:

int countMatches(const char s1[], const char s2[])
{    
  char s1copy[MAXWORDLEN+1];
  strcpy(s1copy, s1);

  int nMatches = 0;

  // For every character in s2

  for (int k2 = 0; s2[k2] != '\0'; k2++)
  {
    // For every character in the copy of s1

    for (int k1 = 0; s1copy[k1] != '\0'; k1++)
    {
        // If they match, blot it out of the copy of s1
        // so it won't be matched again

        if (s1copy[k1] == s2[k2])
        {
            nMatches++;
            s1copy[k1] = '#';
            break;
        }
    }
  }
  return nMatches;
}

我知道这个命令确实对应于下面的内容:

hadoop fs -ls 

如何确定hadoop fs -ls hdfs://<namenode>:<namenode_port> namenode的这些值?

我已经尝试过检查环境变量并查看文档,但我找不到任何可以做到的事情。

1 个答案:

答案 0 :(得分:2)

您需要为core-site.xml<namenode>值引用hadoop配置文件<namenode_port>。搜索配置属性fs.defaultFS(最新)或fs.default.name(已删除)。

core-site.xml文件位于/etc/hadoop/conf$HADOOP_HOME/etc/hadoop/conf个位置。

修改

有一种动态的方法可以做到这一点。下面的hadoop命令将给出HDFS URI。

hdfs getconf -confKey "fs.defaultFS"

但是,每次执行hadoop命令时,hadoop都会加载客户端配置xml文件。如果你想测试一下,可以通过将/ etc / hadoop / conf的内容复制到新目录中来创建一些单独的客户端配置(让我们说/ home // hadoop-conf,它应该包含core- site.xml,hdfs-site.xml,mapred-site.xml),使用命令export HADOOP_CONF_DIR=/home/<USER>/hadoop-conf覆盖环境变量,更新core-site.xml文件,然后使用hadoop命令进行测试。请记住,这仅用于测试目的,在完成测试后取消设置环境变量(unset HADOOP_CONF_DIR)。