HBASE基础

1.介绍

  • 一种分布式Hadoop数据库
  • 支持随机访问和数据检索
  • 不适合实时处理,适合海量数据

2.背景

  • 关系型数据库(RMDBS):MySQL,Oracle
  • 非关系型数据库(nosql):no only sql
  • bigtable—>hbase
  • gfs—>hfs

3.使用场景

3.1 互联网搜索:bigtable

  • bigtable/hbase专门用于搜索引擎的数据存储

HBASE基础

  • 建立索引的含义:爬虫行为不断,加快检索数据速度

3.1.1 bigdata发明的原因

  • 抓取增量数据
  • 内容服务
  • 信息的交换

4 hbase安装

4.1 步骤

5.hbase 特性

5.1 特性

  • 表模型和关系型数据库表模型不同
  • 表没有固定的字段定义
  • 表中每行存储的数据都是键值对
  • 表中有列簇的划分,用户可以指定将那些键值划分到列簇
  • hbase的表存在物理存储上,是按照列簇来划分的,不同列簇的数据一定存储在不同的文件中
  • 每一行都有一个固定的行键,每一行的行键在表中不能重复
  • hbase中的数据,包含行键、键值。。。都是byte类型,本身不负责维护数据类型
  • 对事务支持很差

和nosql和RMDBS的区别:

HBAse RMDBS
数据类型 只有字符串 丰富的数据类型
数据类型
数据类型
数据类型

hbase表模型

一个表(表名)
rowkey,行键不重复
多个colum family
cell 对应一个kv
存储多个历史版本
数据如果太大,会被横向切分成脱肛额region(用rowkey范围标识),不同region的数据存储在不同的文件中
hbase会对插入的数据按顺序存储:首先按照行键排序;同一行礼的kv会按照列簇排序,再按照kv排序

5.2 工作机制

HBASE基础

  • client:客户端,访问hbase的主键都可以是客户端。sh/py等文件都可以。
  • ZK:一个集群。

监控master。保证一个集群中有且仅有一台hmaster是存活的,为了高可用
存储所有region的寻址入口。
实时监控region server的状态。感知regionserver的上下限,实时通知hmaster.还会存储hbase的部分元数据。

  • hmaste:

整个hbase主机。为regionmaster分配region。负责regionserver的负载均衡。
负责region的重新分配。
hdfs的垃圾回收
schema的更新请求

  • regionserver

维护master分配给他的region
负责处理client对region的读写请求并和HDFS进行交互
负责具体的关于region的切分

  • hlog

会对HBASE所有操作进行记录,当有插入操作,先将操作写入到日志,然后再写源数据库

  • region

表的一部分
hbase分布式存储和负载均衡的最小单元

  • store

列簇

  • memorystore

内存缓冲区。专门用于将数据批量刷新到HDFS中。默认为128M(内存缓冲区)

  • hfile/storefile

hbase中的文件都会以hfile的形式存储到HDFS中。