HBase:
HBase 是一个高可靠、高性能、面向列、可伸缩的分布式NoSQL 数据库,运行于HDFS 文件系统之上,主要用来存储非结构化和半结构化的松散数据。HBase 的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10 亿行数据和数百万列元素组成的数据表。
HDFS:
HDFS 本质上是一个数据文件系统,对于数据批量查询的场景有着很好的支持,但对于数据随机查询上比较无力。同时HDFS不支持数据的更新、不合适增量数据处理。
RDBMS:
关系型数据库(RDBMS)解决数据写入、数据查询问题。关系型数据库在解决数据查询上的表现是久经考验的,具有轻量化、高可靠性、索引支持良好的优点,并支持事务特性。
Hive:
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。
Hbase | RDBMS | HDFS | Hive | |
---|---|---|---|---|
数据库大小 | PB | GB、TB | PB以上 | PB以上 |
数据类型 | Bytes | 丰富的数据类型 | 文件 | 丰富的数据类型 |
事务支持 | ACID只支持单个Row级别 | 全面的ACID支持ROW和表 | 不支持 | 支持事务 和ACID语义事务 |
索引 | 只支持ROW-Key | 支持 | 不支持 | 0.7版本之后支持索引 |
吞吐量 | 百万查询/秒 | 数万查询/秒 | 不适合低延迟数据访问 | 数据量大查询会变慢 |