我正在尝试在 hadoop 上进行 JUnit 测试,我编写了一个测试用例,我使用 MiniDFSCluster、MiniMRCluster 和 JUnit 在本地 mini-hadoop 环境中运行。
但是我收到了这个错误:
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.
这看起来像仍然未决的 HDFS 错误https://issues.apache.org/jira/browse/HDFS-2556 。
由于我无法更改我正在使用的 hadoop 版本,有没有办法强制 hadoop 接受这些权限?
我试过: System.setProperty("dfs.datanode.data.dir.perm", "775"); 但是 hadoop 忽略了它们。
此外,我无法手动更改权限,似乎迷你集群每次运行都会重新创建它们。
有没有办法在不修改 hadoop 或更改版本的情况下克服这个问题?谢谢。