Its easy to get carried away by the words "namespace separation" and what
it truly means in federation setup. Its not as simple as it sounds.
If you have 3 NNs, you will have 3 NNs with "/" each. Its not 3 NNs with
"/hbase" on all of them and files distributed automatically among them.
ViewFS is a client-sided FS that can talk to the 3 NNs, and rewrite the
path locally. That is, you can choose to mount / of NN1 as /hbase1, / of
NN2 as /hbase2 and / of NN3 as /hbase3, but not bind all of them to a
common root (/).
When you then ask for viewfs:///hbase1/foo, it internally goes to NN1
looking for just /foo. NN1 does not know what "/hbase1" is, only the client
(viewfs) does, which translates/brokers the request for you automatically.
Simply said, no - such a setup with a single HBase cluster over 3x NNs is
Even if you did provide some form of viewfs:// as the root directory in
HBase config, it would fail cause of viewfs restrictions around moving
paths between mount-point paths.