"test.build.data" is overloaded in HBase.At the beginning, it's the "Default parent directory for test output.", but then it's rewritten to be the directory itself in functions like HBaseTestingUtility#startMiniDFSCluster
It seems that this value is already used by MiniDFS (i.e. outside of HBase):
"Name is as it is because mini dfs has hard-codings to put test data here."
As it is today, there is at least a bug in HBaseTestingUtility:
if you set a value for "test.build.data", the test dir will be the parent directory and not a temp subdir, leading to issues as multiple tests will end-ups in the same (bad) directory. This function is barely used today, hence it's not visible, but I would like to use it in some new code.
A possible fix is to remove the check for null and continue with the overloading, but I don't think it would be a big issue to create a new key(like "test.build.data.rootdirectory") specific to the root directory and to use "test.build.data" only to communicate with MiniDFS. Feedback welcome.