HBase产生背景
自 1970 年以来,关系数据库用于数据存储和维护有关问题的解决方案。大数据的出现后,好多公司实现处理大数据并从中受益,并开始选择像 Hadoop 的解决方案。 Hadoop 使用分布式文件系统,用于存储大数据,并使用 MapReduce 来处理。 Hadoop 擅长于存储各种格式的庞大的数据,任意的格式甚至非结构化的处理。
Hadoop 的限制
Hadoop 只能执行批量处理,并且只以顺序方式访问数据。这意味着必须搜索整个数据集,即使是最简单的搜索工作。
当处理结果在另一个庞大的数据集,也是按顺序处理一个巨大的数据集。在这一点上,一个新的解决方案,需要访问数据中的任何点(随机访问)单元。
Hadoop 随机存取数据库
应用程序,如 HBase, Cassandra, CouchDB, Dynamo 和 MongoDB 都是一些存储大量数据和以随机方式访问数据的数据库。
总结:
- 海量数据量存储成为瓶颈,单台机器无法负载大量数据
- 单台机器 IO 读写请求成为海量数据存储时候高并发大规模请求的瓶颈
- 随着数据规模越来越大,大量业务场景开始考虑数据存储横向水平扩展,使得存储服务可以增加/删除,而目前的关系型数据库更专注于一台机器
- 当数据进行水平扩展时候,如何解决数据IO高一致性问题。结合Map/Reduce计算框架进行海量数据的离线分析。
随之而来的出现了很多的分布式存储解决方案,HBase就是其中之一。
HB