diff --git a/src/docbkx/book.xml b/src/docbkx/book.xml index 2c0e7a4f484..8d3d2e50a07 100644 --- a/src/docbkx/book.xml +++ b/src/docbkx/book.xml @@ -1251,13 +1251,18 @@ if (!b) {
When Should I Use HBase? - First, make sure you have enough data. HBase isn't suitable for every problem. If you have - hundreds of millions or billions of rows, then HBase is a good candidate. If you only have a few - thousand/million rows, then using a traditional RDBMS might be a better choice due to the - fact that all of your data might wind up on a single node (or two) and the rest of the cluster may - be sitting idle. + HBase isn't suitable for every problem. + First, make sure you have enough data. If you have hundreds of millions or billions of rows, then + HBase is a good candidate. If you only have a few thousand/million rows, then using a traditional RDBMS + might be a better choice due to the fact that all of your data might wind up on a single node (or two) and + the rest of the cluster may be sitting idle. - Second, make sure you have enough hardware. Even HDFS doesn't do well with anything less than + Second, make sure you can live without all the extra features that an RDBMS provides (e.g., typed columns, + secondary indexes, transactions, advanced query languages, etc.) An application built against an RDBMS cannot be + "ported" to HBase by simply changing a JDBC driver, for example. Consider moving from an RDBMS to HBase as a + complete redesign as opposed to a port. + + Third, make sure you have enough hardware. Even HDFS doesn't do well with anything less than 5 DataNodes (due to things such as HDFS block replication which has a default of 3), plus a NameNode. HBase can run quite well stand-alone on a laptop - but this should be considered a development