当前位置: 首页 > 知识库问答 >
问题:

克服HDFS-2556:单元测试目录和权限

吴宏扬
2023-03-14
 WARNING: Metrics system not started: Cannot locate configuration: tried hadoop-metrics2-datanode.properties, hadoop-metrics2.properties
Dec 18, 2012 4:42:29 PM org.apache.hadoop.hdfs.server.datanode.DataNode makeInstance
WARNING: Invalid directory in dfs.data.dir: Incorrect permission for build/test/data/dfs/data/data1, expected: rwxr-xr-x, while actual: rwxrwxr-x
Dec 18, 2012 4:42:29 PM org.apache.hadoop.hdfs.server.datanode.DataNode makeInstance
WARNING: Invalid directory in dfs.data.dir: Incorrect permission for build/test/data/dfs/data/data2, expected: rwxr-xr-x, while actual: rwxrwxr-x
Dec 18, 2012 4:42:29 PM org.apache.hadoop.hdfs.server.datanode.DataNode makeInstance
SEVERE: All directories in dfs.data.dir are invalid.

共有1个答案

萧宁
2023-03-14
    try {
        Process process = Runtime.getRuntime().exec("/bin/sh -c umask");
        BufferedReader br = new BufferedReader(new
                InputStreamReader(process.getInputStream()));
        int rc = process.waitFor();
        if (rc == 0) {
            String umask = br.readLine();

            int umaskBits = Integer.parseInt(umask, 8);
            int permBits = 0777 & ~umaskBits;
            String perms = Integer.toString(permBits, 8);

            log.info("Setting dfs.datanode.data.dir.perm to " + perms);
            hBaseTestingUtility.getConfiguration().set("dfs.datanode.data.dir.perm", perms);
        } else {
            log.warn("Failed running umask command in a shell, nonzero return value ");
        }
    } catch (Exception e) {
        // ignore errors, we might not be running on POSIX, or "sh" might not be on the path
        log.warn("Couldn't get umask", e);
    }
 类似资料:
  • 问题内容: 在为Java代码构建一套单元测试时,是否有关于将测试代码与源代码放置在何处的约定? 例如,如果我有一个包含一堆源文件的目录,那么最好将测试用例本身放在其中或使用类似的内容。 如果首选后者,那么在包之外无法使用类的 / 成员时,如何测试代码的内部? 问题答案: 您可以将测试与原始类放在同一包中,即使源代码位于其自己的目录根目录下: 您可以在下声明一个类,并在下声明其测试。 至于访问私有成

  • 问题内容: 在Windows上的Python中,是否可以确定用户是否具有访问目录的权限?我看了一下,但结果不正确。 难道我做错了什么?有没有更好的方法来检查用户是否有权访问目录? 问题答案: 在Windows中检查权限可能很复杂。 您是在谈论简单的读取访问,即读取目录的内容吗?测试权限的最可靠方法是尝试访问目录(例如执行)并捕获异常。 同样,为了正确地解释路径,您必须使用原始字符串或转义反斜杠(’

  • 我有创建目录并向其中传输文件的代码。我想对它进行单元测试。但问题是,当我运行单元测试时,这些目录是创建的,但我不希望这样。我希望代码仅在运行生产环境时创建这些目录。我在google上搜索过这个,但所有的搜索结果都表明是JUnit类临时文件夹。但这不是我想要的。我没有在测试用例中创建目录。我只是在测试创建它们的代码。所以我不确定TemporaryFolder类如何帮助我实现这一点。假设我有如下代码

  • 本文向大家介绍AngularJS 单元测试服务,包括了AngularJS 单元测试服务的使用技巧和注意事项,需要的朋友参考一下 示例 服务编号 考试 跑!

  • 单元测试 单元测试仅依赖于源代码,是测试代码逻辑是否符合预期的最简单方法。 运行所有的单元测试 make test 仅测试指定的package # 单个package make test WHAT=./pkg/api # 多个packages make test WHAT=./pkg/{api,kubelet} 或者,也可以直接用go test go test -v k8s.io/kubernet

  • 此外,hdfs目录由运行集群的超级用户(hadoop超级用户而不是unix超级用户)创建,然后将所有权转移给特定用户。