在使用HBase一定要明白HBase的适用场合,因为HBase并非适用于每种情况。
首先,要确认有足够多的数据存入HBase。
如果有几亿或者几十亿条记录要存入HBase,那么HBase就是一个正确的选择;否则如果你仅有几百万条甚至更少的数据,那么HBase当然不是正确的选择,这种情况下应当选择传统的关系型数据库,因为如果这么少的数据存入HBase,就会导致数据堆积在一两个节点上,而HBase集群内部的其他节点都处于空闲状态。
其次,要确认即便不使用传统关系型数据库提供的额外功能(比如数据库的列有强类型限制,secondary index,transaction,SQL等高级查询语言)系统也能顺畅工作。
基于传统关系型数据上的应用不能通过简单的更换JDBC驱动程序"迁移"到HBase。系统从普通的关系型数据库迁移到HBase将导致整个系统的重新设计。
最后,确认有足够的硬件服务器来支撑HBase的运行。
即便单独运行HDFS,HDFS在少于5个节点的情况下工作不理想,由于在默认情况下HDFS的block replication factor为3,另外还要加上一个Namenode。