HBase has a temporary work around that relies on the private HdfsConstants in
HBASE-13716. That will help us with future patch-releases on HBase's 1.y release line, but it order to list Hadoop 2.8+ as okay for HBase 1.0 and 1.1 (the two minor releases that are already live) we'll need this change reverted from branch-2 so that the earlier versions of those branches will work at runtime.
If possible before our next set of releases, we'd like some guidance on what Hadoop considers the correct way to get the same information we want, i.e. "is HDFS in safemode?" Some details from Duo Zhang over on
Add I check the code again, HdfsUtils.isHealthy(URI) calls DistributedFileSystem.setSafeMode(GET, false), but in HBase we calls DistributedFileSystem.setSafeMode(GET, true). I think the difference is when the second parameter is true then BackupNN will throw a StandByException that force client to connect to ActiveNN.
If we must connect to ActiveNN in HBase, then HdfsUtils.isHealthy(URI) is not enough. So add new methods in HdfsUtils?
On the general issue of HBase's "true dependencies on Hadoop" we have an umbrella issue now to ensure that by HBase 2.0 we have a well defined interface point: HBASE-13740. In the mean-time, I could add a nightly build job that both projects get notice of that attempts to build the current HBase branch-1 against the current Hadoop branch-2.