JAVA面试——Hbase(一)

简介: JAVA面试——Hbase

14.1.1. 概念

base 是分布式、面向列的开源数据库(其实准确的说是面向列族)。HDFS 为 Hbase 提供可靠的

底层数据存储服务,MapReduce 为 Hbase 提供高性能的计算能力,Zookeeper 为 Hbase 提供

稳定服务和 Failover 机制,因此我们说 Hbase 是一个通过大量廉价的机器解决海量数据的高速存

储和读取的分布式数据库解决方案。

14.1.2. 列式存储

列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因此整个数据库

是自动索引化的。

image.png

这里的列式存储其实说的是列族存储,Hbase 是根据列族来存储数据的。列族下面可以有非常多

的列,列族在创建表的时候就必须指定。为了加深对 Hbase 列族的理解,下面是一个简单的关系

型数据库的表和 Hbase 数据库的表:

image.png

14.1.3. Hbase 核心概念

14.1.3.1. Column Family 列族

Column Family 又叫列族,Hbase 通过列族划分数据的存储,列族下面可以包含任意多的列,实

现灵活的数据存取。Hbase 表的创建的时候就必须指定列族。就像关系型数据库创建的时候必须

指定具体的列是一样的。Hbase 的列族不是越多越好,官方推荐的是列族最好小于或者等于 3。我

们使用的场景一般是 1 个列族。

14.1.3.2. Rowkey(Rowkey 查询,Rowkey 范围扫描,全表扫描

Rowkey 的概念和 mysql 中的主键是完全一样的,Hbase 使用 Rowkey 来唯一的区分某一行的数

据。Hbase 只支持 3 中查询方式:基于 Rowkey 的单行查询,基于 Rowkey 的范围扫描,全表扫

描。

14.1.3.3. Region 分区

Region:Region 的概念和关系型数据库的分区或者分片差不多。Hbase 会将一个大表的数

据基于 Rowkey 的不同范围分配到不通的 Region 中,每个 Region 负责一定范围的数据访问

和存储。这样即使是一张巨大的表,由于被切割到不通的 region,访问起来的时延也很低。

14.1.3.4. TimeStamp 多版本

TimeStamp 是实现 Hbase 多版本的关键。在 Hbase 中使用不同的 timestame 来标识相同

rowkey 行对应的不通版本的数据。在写入数据的时候,如果用户没有指定对应的

timestamp,Hbase 会自动添加一个 timestamp,timestamp 和服务器时间保持一致。

Hbase 中,相同 rowkey 的数据按照 timestamp 倒序排列。默认查询的是最新的版本,用户

可同指定 timestamp 的值来读取旧版本的数据

14.1.4. Hbase 核心架构

Hbase 是由 Client、Zookeeper、Master、HRegionServer、HDFS 等几个组建组成。


相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5天前
|
SQL Java
java面试题笔试常见选择题大全含答案
java面试题笔试常见选择题大全含答案
|
5天前
|
SQL JavaScript Java
java程序员面试题大全含答案(2018--2019)
java程序员面试题大全含答案(2018--2019)
|
5天前
|
设计模式 开发框架 Java
java设计模式面试题大全含答案
java设计模式面试题大全含答案
|
5天前
|
设计模式 SQL JavaScript
java面试宝典全套含答案
java面试宝典全套含答案
|
5天前
|
存储 Java
java面试题大全带答案_面试题库_java面试宝典2018
java面试题大全带答案_面试题库_java面试宝典2018
|
5天前
|
缓存 安全 Java
Java线程面试题含答案
Java线程面试题含答案
|
5天前
|
存储 设计模式 Java
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
java实习生面试题_java基础面试_java面试题2018及答案_java面试题库
|
3天前
|
Java Android开发 Kotlin
Android面试题:App性能优化之Java和Kotlin常见的数据结构
Java数据结构摘要:ArrayList基于数组,适合查找和修改;LinkedList适合插入删除;HashMap1.8后用数组+链表/红黑树,初始化时预估容量可避免扩容。SparseArray优化查找,ArrayMap减少冲突。 Kotlin优化摘要:Kotlin的List用`listOf/mutableListOf`,Map用`mapOf/mutableMapOf`,支持操作符重载和扩展函数。序列提供懒加载,解构用于遍历Map,扩展函数默认参数增强灵活性。
13 0
|
SQL 缓存 安全
Java高频面试题目
面试时面试官最常问的问题总结归纳!
110 0
JAVA高频面试题目集锦(6)
JAVA高频面试题目集锦(6)
111 0
JAVA高频面试题目集锦(6)