Q:什么是HBase?
- HBase是基于HDFS之上的NoSQL数据库。可存储上亿行数据,百亿列数据。
Q:为什么要用HBase,而不用MySQL等关系型数据库?
- 1、当数据量很大的时候(日均达到百G级别数据),关系型数据库为了不使表爆掉,就得做分库分表操作,极大的影响了查询性能。
- 2、数据结构的限制,HBase采用的是LSM树,MySQL用的是B+树。虽然B+树的查询速度很快,但是写入会产生大量的IO操作速度非常慢。LSM树弥补了B+树的不足,它的原理是将大树拆分成若干个小树,先写入内存中,当内存达到上限的时候就flush到本地磁盘,所以它的写入速度会很快,但与此同时也牺牲了一定的读的性能。
- 3、HBase的每秒查询可达到百万行,而MySQL每秒查询仅为2000行。
- 4、HBase为大数据生态体系中的成员,做大数据分析可无缝对接各种组件(ElasticSearch、Solr);而关系型数据库就不支持大数据平台的查询,必须得把关系型数据库中的数据导入到大数据平台中(HDFS),才能对关系型数据库的数据进行分析统计。
Q:RegionServer、Region、Column Family(CF)、Store、MemStore之间有什么关系
- Region是HBase数据库的最小拆分单元
- 一个RegionServer包含多个Region,一个Region就是一个目录,一个Region里放有多个CF,每个CF对应一个Store(也可以说成每个CF对应一个MemStore,因为每个Store里只有一个MemStore)