zoukankan      html  css  js  c++  java
  • 《OD学HBase》20160820

    一、案例

    微博:

    微博内容:

    关注用户和粉丝用户: 添加或移除关注用户

    查看关注用户的微博内容

    微博数据存储:

    响应时间 秒级 无延迟

    (1)mysql分布式 

    (2)hbase数据库

    使用HBase数据库实现微博系统数据的存储

    表的设计:

    命名空间:weibo

    1. 微博内容表

    TableName: weibo:weibo-content

    RowKey:用户ID_timestamp

    列簇:cf

    列标签: cf:content,cf:title,cf:photo

    版本设计:只需要保留一个版本

    2. 用户关系表

    TableName: weibo:relations

    rowkey: 用户iID

    列簇:

    attend 关注用户

    fan 粉丝用户

    列标签:使用用户ID作为列标签,值为用户ID

    rowkey   attend          fan 

    0001       attend:0002=0002           fan:0004=0004

                  attend:0003=0003           fan:0004=0004

    版本设计:只需要保留一个版本

    3. 用户微博内容接收邮件箱表

    TableName: weibo:receive-content-email

    Rowkey:用户ID

    列簇:cf

    列标签:

     直接使用用户ID,vlaue值取微博内容的rowkey

    版本设计:设置最大版本为1000

    rowkey  cf

    00001  cf:0002=0002_2132455

         cf:0002=0002_2132456

    1)rowkey设计:

    (1)唯一性

    (2)长度: 最大64kb。rowkey是hbase中表数据冗余产生的因素

    10~100 字节

    最好 8字节 16字节 64位操作系统

    (3)散列原则:

    假如 时间戳_用户ID 作为rowkey

    10亿用户同时发微博,

    1456777_000001

    1456778_000002

    1456778_100000

    问题: 集中到某个region,造成这单独几个region负载量偏大,而其他region完全没有负载

    散列: 尽量将某一时刻内的数据均衡分散到所有Region中(大部分Region)中

    热点现象:数据在某一个时刻集中存储到某一两个Region上

    rowkey设计规范;

    方便查询,尽可能讲查询字段放到rowkey,HBase根据rowkey查询速度是最快。

    2)列簇设计:

    HBase面向列簇存储

    region起始rowkey --- 终止rowkey范围内一个列簇下的数据

    hdfs上的一个文件  

    StoreFile === HFile

    跨列簇查询,速度相对较慢

    一般设计一到两个列簇

    HBase中的缓存

    memstore: 写缓存

    blockcache:块缓存,读缓存

    HBase表单元格版本号:插入数据的时候如果没有单独制定,系统默认使用时间戳作为版本号。也可以自己制定时间戳。

    Get查询单行记录,Scan查询多行记录

  • 相关阅读:
    English,The Da Vinci Code, Chapter 23
    python,meatobject
    English,The Da Vinci Code, Chapter 22
    English,The Da Vinci Code, Chapter 21
    English,The Da Vinci Code, Chapter 20
    English,The Da Vinci Code, Chapter 19
    python,xml,ELement Tree
    English,The Da Vinci Code, Chapter 18
    English,The Da Vinci Code, Chapter 17
    English,The Da Vinci Code, Chapter 16
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5790225.html
Copyright © 2011-2022 走看看