分布式数据库HBase

分布式数据库HBase

一、HBase简介(基于bigtable):

bigtable的用处: bigtable支持pb级别数据,高可扩展性,可扩展到几千个服务器的分布式存储。存储非结构化和半结构化数据。
在这里插入图片描述
bigtable的原理:
在这里插入图片描述
在这里插入图片描述
HBase相比于关系型数据库具备自动分片能力、良好的水平可扩展性。
在这里插入图片描述

二、HBase数据模型

HBase由行键、列族,列限定符,时间戳四个元素组成。旧的版本保留,新的生成时间错,列族为存储的基本单元。四个元素维度定位唯一数据。
在这里插入图片描述
HBase概念视图和物理视图:
在这里插入图片描述
在这里插入图片描述
面向行存储:
**优点:**每次写入一个完记录,事务型操作多优势。
**缺点:**去除某列时不得不扫描整行数据。因此做分析时代价很高,因为分析时都是针对一列分析。HBase一般应用于列的分析高效。

二、HBase实现原理

客户端一般不从master上存取数据,而是从master上获取region的位置信息,然后再直接和相应的region服务器获取数据。
在这里插入图片描述
自动拆分只是改写指向信息,region最佳大小一般在1g到2g,大小取决于单台服务器的有效处理能力,一个region不会被拆分到不同的region服务器上去。一台region服务器大概存储10到1000个region
在这里插入图片描述
加速寻址,缓存地址信息,再次寻址解决缓存失效。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、HBase运行机制

在这里插入图片描述
在这里插入图片描述
一个region服务器由一个日志Hlog管理,每个store都是一个列族。先写入memstore缓存,再写入storefile中。
在这里插入图片描述
用户写数据过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
照顾到一般服务时的写快捷,一台服务器多个region共用一个hlog,故障发生概率比较低。

HBase应用方案

  • 1.时间戳排序,最近数据最快命中。
  • 2.设置最大版本数,只保存最新数据设置为1即可。
  • 3.设置timetolive,过期自动清除。
  • 4.ambari可以监控HBase运行情况。
  • 5.可以借助Hive或者phoenix的sql引擎整合HBase操作。
  • 6.原生的HBase不支持对其他列构建索引,引入coprocessor机制构建二级索引,一旦有更新数据就通过observer同步更新索引。为了节省类似频繁操作带来的开销,将索引缓存写入Redis数据库中。通过solr构建针对其他列的索引。
  • 7.启动hadoop再启动HBase,关闭顺序相反。zookeeper负责集群管理。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

编程实践

将HBase的lib下所有的jar考入java工程。关闭连接是先关闭admin后关闭connection,包裹在try catch中。
整体代码架构
在这里插入图片描述
在这里插入图片描述
HBase创建表
在这里插入图片描述
HBase添加数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值