HBase 使用初体验

  2011-05-18
 叔宝@搜索中心
Agenda
•   QCon NoSQL简介
•   HBase 介绍
•   HBase@搜索中心
•   遇到的问题
NoSQL@Qcon
• NoSQLs : Key/Value
  – Facebook ,Twitter: HBase 线上每月25T消息
                             hbase + haystack
  – Sina : Mysql->Mysql + Redis 5w qps
  – 豆瓣 : BeansDB 记录为几K~几M之间
  – 淘宝 : tair
  – 百度 : bailingDB 千亿网页存储
  – 人人 : Nuclear Dynamo
  – QQ Mail : SimpleDB 支持业务的cache
  – 视觉中国 : MongoDB
HBase 介绍
•   Background
•   Data Model
•   Architecture
•   Features
•   Hbase API
Background
• BigTable
• Hadoop
Background
What is HBase
•   Column-oriented semi-structured data store
•   Distributed
•   Layered over HDFS
•   Tolerant of machine failure
•   Strong consistency
From facebook
Data Model
• Basic concept
  – Table
  – Row(全局有序)
  – Column = Family + qualifier(不固定)
  – Timestamp(version)
  – Cell
  – region
Data Model(cnt.)
Table : User-Friends
                          Info                        Friends

Row(Uid)   Name     Sex          Age   …   1      3         4      …


   1       John     M            23              Bf

   2       Smith

   3        Lily     F           22        Gf             Sister

   4       Lucy      F           22             Sister
Data Model(cnt.)
• Physical Storage
                            Info                        Friends

  Row(Uid)   Name     Sex          Age   …   1      3         4      …


     1       John     M            23              Bf

     2       Smith

     3        Lily     F           22        Gf             Sister

     4       Lucy      F           22             Sister
Architecture
Architecture(cnt)
• Client
   – Read/Write Data(RegionServer)
   – Schema Manager(Master)
• Zookeeper
   – Master选举和恢复
   – 定位Root region
   – RegionServer上下线感知
• Master
   – Region assign(balancer)
   – Metadata operation
• RegionServer
   – 用户IO请求
   – Split/Compact Region
Where is ipad@query table?
                                 query
• 3 级查找                .META1.
                                 ipad


              -ROOT-
             .META1.
 zookeeper   META2
Write

         MemStore

writer
         HLog
         Seq#1,Table13,Region11,…   StoreFile StoreFile
                                                  StoreFile   Small
         Seq#2,Table5,Region2,…

                                           Compaction
Features
•   Scalability
•   High performance
•   Reliability
•   Hbase API
Scalability
• 扩容
 – 传统方案:分库分表
 – HBase : 直接新增机器
 – RegionServer
   • Split
   • Load balance
 – HDFS
• Schema变化
 – 传统方案:停机维护
 – HBase : 动态增删列(族)
High performance
• 随机读
 – Key/Value
 – Cache(客户端cache+MemStore+Blocking)
 – 按列存储
 – Split/balance
 – BloomFilter
High performance(cnt.)
• 随机写
 – WAL
 – Cache(MemStore)
 – Compact/Split/balance
High performance(cnt.)
• 范围查询Scan
 – Row全局有序
Reliability(Fault-tolerance)
• Layered On HDFS
• WAL
• Automatic Failover
  – Region Server
  – Master
HBase API
•   HBase shell (like mysql/hive)
•   Java API
•   Thrift
•   REST
•   Jython,Scala,Groovy DSL, Cascading, Pig,
    Hive…
Java API
•   Get
•   Put
•   Delete
•   Scan
•   HBaseAdmin
•   MapReduce
HBase@搜索中心
• 一淘
 – 网页(文本信息+全网B2C商品)
 – 图片(缩略图+价格图)
 – 外网合作商家数据
• 主要操作:
 – 网页选取
 – 链接提取
 – 图片处理
 – Index Build(全量+增量)
HBase@搜索中心(cnt.)
• 数据平台
 – 卖家数据存储
  •   基本信息
  •   每天流量来源
  •   反作弊
  •   相关性
 – Query数据存储
HBase@搜索中心(cnt.)
• Dump中心
 – 宝贝数据
 – 用户数据
 –…
• 解决增量问题
遇到的问题/经验分享
• 表Schema设计
    – Key : 查找某个query某个类目id下的数据
    – Column Family
    – 每天一表or总共一张表
•   压缩
•   Region pre-sharding
•   机房数据迁移(bulk loader)
•   WAL的影响评估
相关学习资料
• Soure Code
• BigTable 论文
• Website Book
• Wiki
• 菜鸟看Hbase by 毕玄
• HBase @ Hadoop Day Seattle
• Facebook's New Realtime Analytics System:
  HBase to Process 20 Billion Events Per Day
• QCon北京 2011 总结

H base 使用初体验

  • 1.
    HBase 使用初体验 2011-05-18 叔宝@搜索中心
  • 2.
    Agenda • QCon NoSQL简介 • HBase 介绍 • HBase@搜索中心 • 遇到的问题
  • 3.
    NoSQL@Qcon • NoSQLs :Key/Value – Facebook ,Twitter: HBase 线上每月25T消息 hbase + haystack – Sina : Mysql->Mysql + Redis 5w qps – 豆瓣 : BeansDB 记录为几K~几M之间 – 淘宝 : tair – 百度 : bailingDB 千亿网页存储 – 人人 : Nuclear Dynamo – QQ Mail : SimpleDB 支持业务的cache – 视觉中国 : MongoDB
  • 4.
    HBase 介绍 • Background • Data Model • Architecture • Features • Hbase API
  • 5.
  • 6.
  • 7.
    What is HBase • Column-oriented semi-structured data store • Distributed • Layered over HDFS • Tolerant of machine failure • Strong consistency
  • 8.
  • 9.
    Data Model • Basicconcept – Table – Row(全局有序) – Column = Family + qualifier(不固定) – Timestamp(version) – Cell – region
  • 10.
    Data Model(cnt.) Table :User-Friends Info Friends Row(Uid) Name Sex Age … 1 3 4 … 1 John M 23 Bf 2 Smith 3 Lily F 22 Gf Sister 4 Lucy F 22 Sister
  • 11.
    Data Model(cnt.) • PhysicalStorage Info Friends Row(Uid) Name Sex Age … 1 3 4 … 1 John M 23 Bf 2 Smith 3 Lily F 22 Gf Sister 4 Lucy F 22 Sister
  • 12.
  • 13.
    Architecture(cnt) • Client – Read/Write Data(RegionServer) – Schema Manager(Master) • Zookeeper – Master选举和恢复 – 定位Root region – RegionServer上下线感知 • Master – Region assign(balancer) – Metadata operation • RegionServer – 用户IO请求 – Split/Compact Region
  • 14.
    Where is ipad@querytable? query • 3 级查找 .META1. ipad -ROOT- .META1. zookeeper META2
  • 15.
    Write MemStore writer HLog Seq#1,Table13,Region11,… StoreFile StoreFile StoreFile Small Seq#2,Table5,Region2,… Compaction
  • 16.
    Features • Scalability • High performance • Reliability • Hbase API
  • 17.
    Scalability • 扩容 –传统方案:分库分表 – HBase : 直接新增机器 – RegionServer • Split • Load balance – HDFS • Schema变化 – 传统方案:停机维护 – HBase : 动态增删列(族)
  • 18.
    High performance • 随机读 – Key/Value – Cache(客户端cache+MemStore+Blocking) – 按列存储 – Split/balance – BloomFilter
  • 19.
    High performance(cnt.) • 随机写 – WAL – Cache(MemStore) – Compact/Split/balance
  • 20.
  • 21.
    Reliability(Fault-tolerance) • Layered OnHDFS • WAL • Automatic Failover – Region Server – Master
  • 22.
    HBase API • HBase shell (like mysql/hive) • Java API • Thrift • REST • Jython,Scala,Groovy DSL, Cascading, Pig, Hive…
  • 23.
    Java API • Get • Put • Delete • Scan • HBaseAdmin • MapReduce
  • 24.
    HBase@搜索中心 • 一淘 –网页(文本信息+全网B2C商品) – 图片(缩略图+价格图) – 外网合作商家数据 • 主要操作: – 网页选取 – 链接提取 – 图片处理 – Index Build(全量+增量)
  • 25.
    HBase@搜索中心(cnt.) • 数据平台 –卖家数据存储 • 基本信息 • 每天流量来源 • 反作弊 • 相关性 – Query数据存储
  • 26.
    HBase@搜索中心(cnt.) • Dump中心 –宝贝数据 – 用户数据 –… • 解决增量问题
  • 27.
    遇到的问题/经验分享 • 表Schema设计 – Key : 查找某个query某个类目id下的数据 – Column Family – 每天一表or总共一张表 • 压缩 • Region pre-sharding • 机房数据迁移(bulk loader) • WAL的影响评估
  • 28.
    相关学习资料 • Soure Code •BigTable 论文 • Website Book • Wiki • 菜鸟看Hbase by 毕玄 • HBase @ Hadoop Day Seattle • Facebook's New Realtime Analytics System: HBase to Process 20 Billion Events Per Day • QCon北京 2011 总结