码迷,mamicode.com
首页 > 数据库 > 详细

基于HBase的时间序列数据库(改进)

时间:2016-11-03 23:22:48      阅读:469      评论:0      收藏:0      [点我收藏+]

标签:sequence   处理   存储   oop   flush   中间   reg   集群   mapreduce   

基本知识:

  期望:1.利用高效的行、列键组织数据存储方式和使用平滑的数据持久策略缓解集群压力

     2.利用zookeeper保障数据一致性(选举Leader)

  提高性能的技术:数据压缩、索引技术、实体化视图

  zookeeper 监控HRegionServer,保存Root Region实际地址,HMaster物理地址,减轻分布式应用从头开发协作服务的负担

  HMaster管理HRegionServer负载均衡

  日志根据Hadoop的SequenceFile存储

  HBase主要处理实际数据文件和日志文件

  HRegionServer将请求提交给HRegion处理

  底层存储文件的合并和拆分:

    1.内存文件(MenStore)的不断刷入,文件数目增加达到一定数目,compaction线程会合并成大文件

    2.大文件体积达到分割的阈值,触发HRegionServer内的Regions的分割


架构:

  数据由物联网传感器设备群上传到实时历史数据库服务器群,经压缩、缓存写入HBase服务器集群

  ZooKeeper服务器群对物联网传感器设备群进行设备注册管理,对实时历史数据库服务器群进行进程监控,对HBase服务器集群进行集群服务


持久化策略:

  通俗点讲,原始采集数据通过实时数据缓存预处理监控,对不合格或时间错乱的数据摒弃处理,利用历史数据缓存及压缩,最后存入HBase中

  将数据缓存池分成大小相同的两块,用有损压缩线程池写入其中一块的固定位置,达到一块接收,一块进行HBase写入,写入方式分为定时刷入和阈值刷新


思考:

  1.Flush和Compaction优化

  2.Split机制的改进

数据库表选用窄表,行键设计为组合行键,即[tag_name][data_timestamp]

数据整理采用离线整理的机制,利用MapReduce将行键中tag_name和time范围内相同的合并为一行,缺点是耗时和耗资源

ZooKeeper:1.设备确认(注册一个数据节点,存储信息为所有采集点接入物理节点的位置信息)

       2.应用层开启查询事务功能,首先对查询事务进行分解,获取位置信息,查询请求路由到正确的物理节点

       3.设备索引改变,会将改变提交,完成自身维护


数据统计与分析模块:

  如 一次滑动平均法

  预测下一周期内的数据写入量,并与当前写入量进行比较,若呈下降趋势或预测文件小,则延迟递交Split请求


查询中间件:

  1.对数据项的行键进行解释

  2.对查询请求进行解析,对结果进行合并封装

  同时缓存实时查询需求较大的应用场景所需要的索引信息

 

基于HBase的时间序列数据库(改进)

标签:sequence   处理   存储   oop   flush   中间   reg   集群   mapreduce   

原文地址:http://www.cnblogs.com/bingo2-here/p/6028453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!