Hbase 基于HDFS分布式列存储Nosql数据库(五) 概念及原理介绍

Hbase优化

  • 概念: hbase优化可通过以下几个方面,flush,compaction,split和列簇属性来实现

Flush

  • 意义: 用于将memstore中的数据写入HDFS,变成storefile文件,空出内存,用于存储新数据

  • 自动触发规则:

    1. 默认单个memstore的存储达到128M,就会触发
    2. 默认整个region的memstore的数据达到128M*4,就会触发
    3. 默认整个regionserver中的memstore的使用率达到堆内存的40%,就会触发
  • 缺点:

    1. 自动触发,会导致磁盘IO的负载过高,会影响业务,一般会关闭自动触发,根据实际情况定期的在业务比较少的时候,手动触发
  • 手动触发:
    关闭自动触发:将所有自动触发的条件调高,定期的在没有达到自动触发的条件之前通过flush命令手动触发

  • 总结:
    将自动触发条件调高,以此来关闭自动触发flush,并在业务量较少时通过手动触发flush,以此来达到优化目的

Compaction

  • 意义: 用于实现将多个storefile文件,合并成一个storefile文件,变成一个整体有序的文件,加快读的效率

  • 自动触发规则:

    1. minor compaction:轻量级的合并,合并部分storefile成一个文件,smart算法,将最早生成的三个文件合并,不定期执行,占用IO比较小
    2. major compaction:重量级的合并,合并所有的storefile文件成一个文件
    3. 默认七天会触发一次compaction
  • 缺点:

    1. 自动触发,会导致磁盘IO的负载过高,会影响业务,一般会关闭自动触发,根据实际情况定期的在业务比较少的时候,手动触发
  • 手动触发:
    关闭自动触发,通过major_compact命令来进行手动指定表合并或列合并

  • 总结:
    关闭自动触发major compaction,并在业务量较少时通过手动触发major_compact

Split

  • 意义: 将一个region分裂成两个region,分摊region的负载

  • 自动触发规则:

    1. 0.94版本之前规则:如果整个region的某个store的大小达到10GB,就会触发
    2. 0.94版本之后Math.min(getDesiredMaxFileSize(),initialSize * tableRegionsCount * tableRegionsCount * tableRegionsCount); 即若region个数在0~100之间,min(10g,256M*region个数的三次方)
  • 缺点:

    1. 自动触发,会导致磁盘IO的负载过高,会影响业务,一般会关闭自动触发,根据实际情况定期的在业务比较少的时候,手动触发
  • 手动触发:
    关闭自动触发:hbase.client.keyvalue.maxsize=100GB,不可能达到这个值,根据集群region的数据量,来定期手动触发

  • 总结:
    关闭自动触发,并在业务量较少时通过手动触发split

列簇属性

  • BLOOMFILTER: 布隆过滤器
    用于在检索storefile文件时,根据索引判断该storefile文件中是否有想要的数据,若没有直接跳过
    级别: none 不开启,
    row 判断是否有需要的rowkey,没有就跳过
    rowcol 判断是否有需要的rowkey和cf:c,没有就跳过

  • Versions: MaxVersions,最大版本数,该列族中的列最多允许存储多少个 版本

  • TTL: 版本存活时间,从该版本的timestamp进行计算,一旦到达这个时间,就表示该数据过期,用户hbase自动清理数据

  • MIN_VERSIONS:最小版本数,该列族中的数据当达到TTL时间以后,最小保留几个版本

  • BLOCKCACHE: 读缓存,是否将这个列簇的数据读到memcache缓存中,默认开启,建议将不经常读取的列簇关闭

  • IN_MEMORY: 代表BLOCKCACHE中的一种缓存的最高级别,默认是关闭的,IN_MEMORY是最高级别的缓存,缓存会定期的进行LRU清理,缓存级别越低,优先会被清理,不要随便开启IN_MEMORY,因为meta表就在IN_MEMORY级别的缓存中

  • BLOCKSIZE: storefile文件块的大小,默认64k,数据块越小,数据块越多,维护索引越多,内存占用越多,读快写慢,数据块越大,数据块越少,维护索引越少,内存占用越少,读慢写快

  • COMPRESSION: Hbase中的压缩其实就是hadoop的压缩,本身就是压缩storefile的存储

Hbase和RDBMS对比

  • Hbase:
    支持向外扩展
    使用API 和MapReduce 来访问HBase 表数据
    面向列,即每一列都是一个连续的单元
    数据总量不依赖具体某台机器,而取决于机器数量
    HBase 不支持ACID(Atomicity、Consistency、Isolation、Durability)
    适合结构化数据和非结构化数据
    一般都是分布式的
    HBase 不支持事务
    不支持Join

  • rdbms:
    支持向上扩展
    使用SQL 查询
    面向行,即每一行都是一个连续单元
    数据总量依赖于服务器配置
    具有ACID 支持
    适合结构化数据
    传统关系型数据库一般都是中心化的
    支持事务
    支持Join

Hbase的增删改查

  • 功能: hbase中实际没有更新和删除操作,hbase中只有增加和查询操作;更新是将新数据插入内存,,删除是将数据逻辑删除,等后续合并时再做覆盖旧版本数据和物理删除数据

  • 意义:

    1. 为了快速返回处理读写请求,数据只要写入就里面返回结果
  • 区别:

    1. get与scan的区别
      get命令是hbase中最快的查询方式,因为指定了索引rowkey,但是只能查询一条数据
      scan命令可以返回多条数据,一般结合过滤器使用
    2. put和delete没有返回结果

hbase/hive/hdfs/rdbms的区别

  • hbase:
    1. 概念: 实时读写的数据库
    2. 用途: 存储数据
    3. 场景: 用于实现实现大量数据的实时读写文件,例如搜素引擎,一般用于高性能计算架构中,能存储半结构或结构化数据
  • hive:
    1. 概念: 结构化数据仓库
    2. 用途: 存储数据
    3. 场景: 只能用于存储结构化数据,用来构建数据仓库的工具
  • hdfs:
    1. 概念: 文件存储系统
    2. 用途: 存储数据
    3. 场景: 可以用于存储结构化,半结构化,非结构化的数据,适用于一次存入多次读取,例如网盘,用于做数据归档
  • rdbms:
    1. 概念: 关系型数据库
    2. 用途: 存储数据
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容