《莲花海》(10) 生死的奥秘-濒死体验的意义(10)-负面「濒死体验」的比例-「鬼道」的「濒死体验」-「自杀」的成因与
H base 使用初体验
-
Upload
- -
Category
Technology
-
view
3.323 -
download
0
Transcript of H base 使用初体验
HBase 使用初体验
2011-05-18
叔宝@搜索中心
Agenda
• QCon NoSQL简介
• HBase 介绍
• HBase@搜索中心
• 遇到的问题
NoSQL@Qcon
• NoSQLs : Key/Value– Facebook ,Twitter: HBase
– Sina : Mysql->Mysql + Redis
– 豆瓣 : BeansDB
– 淘宝 : tair
– 百度 : bailingDB
– 人人 : Nuclear
– QQ Mail : SimpleDB
– 视觉中国 : MongoDB
线上每月25T消息hbase + haystack5w qps
记录为几K~几M之间
Dynamo
支持业务的cache
千亿网页存储
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.)
Row(Uid)
Info Friends
Name Sex Age … 1 3 4 …
1 John M 23 Bf
2 Smith
3 Lily F 22 Gf Sister
4 Lucy F 22 Sister
Table : User-Friends
Data Model(cnt.)
• Physical Storage
Row(Uid)
Info Friends
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?
• 3 级查找
-ROOT-.META1.
META2zookeeper
.META1.
ipad
query
Write
MemStore
Seq#1,Table13,Region11,…
Seq#2,Table5,Region2,…
HLog
StoreFile StoreFile Small
writer
Compaction
StoreFile
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 总结