I'm trying to determine if the following high availability/disaster recovery (HADR) configuration is viable for HBase.
We have a zero downtime requirement for an analtytics application that uses HBase as its columnar store. There is no possibility of moving away from HBase at this point.
Broadly the requirement is that HBase be deployed in a mannewr that can provide 100% read and write availability. This is a business critcal application that requires 100% availability.
We have the ability to deploy the application across two geo-distributed data centers, each of which would include an identically configured CDH cluster. I'm thinking an "active/active" HBase configuration with two geo-distributed clusters that would each provide puts/reads. We would distribute the ZooKeeper ensemble server nodes and backup HBase Masters across the two clusters. We would also use HBase Master - Master data replication to bi-directionally replicate data between clusters. (Using WanDisco Fusion for replication is also an option).
We will need to add an mechanism (i.e. session id) to the application to ensure that it maintains affinity with one of the clusters during writes/reads.
I realize there isn't a lot of detail in this post, but hoping for general feedback on the overall approach.