hbase简介与实践分享

31
HBase 简简简简简简简 简简

Upload: bluedavy-lin

Post on 15-Jan-2015

17.764 views

Category:

Technology


1 download

DESCRIPTION

淘宝技术嘉年华

TRANSCRIPT

Page 1: Hbase简介与实践分享

HBase简介与实践分享毕玄

Page 2: Hbase简介与实践分享

About me

• 毕玄( bluedavy)• 目前就职于淘宝网• 07—10 年负责淘宝服务框架• 今年开始负责 HBase• 关键词– JVM 、 SOA 、网络通信、高并发、高可用、海

量数据存储与分析

Page 3: Hbase简介与实践分享

Simple Introduce

• Yet Another NoSQL• Bigtable implementation• Primary Contributors: Yahoo!,Facebook,

Cloudera

Page 4: Hbase简介与实践分享

Basic Concepts

• Table in HBase– Schema: TableName & Column Family Name ;– value is stored in column with version as byte[];

• Example

Column Family Column Family

Column Label Column Qualifier CL CL CL

// Schema name contact

// CL firstname lastname nickname email phone

bixuan hao lin bluedavy **@gmail 186******

bluedavy hao lin 158******

Page 5: Hbase简介与实践分享

Basic Concepts

• Table in HBase– 以 Region 为单位管理 region(startKey,endKey) ;– 每个 Column Family 单独存储: storeFile ;– 当某个 Column Family 累积的大小 > 某阈值时,

自动分裂成两个 Region ;• 如何找到某行属于哪个 region 呢?

– -ROOT- & .META.

Page 6: Hbase简介与实践分享

Basic Concepts

• RegionServer– Region 读写操作的场所;

• Master– 管理 Region 的分配;– 基于 zookeeper 来保证 HA ;

Page 7: Hbase简介与实践分享

HBase Architecture

图来源于: http://goo.gl/d1T3Q

Page 8: Hbase简介与实践分享

HBase Features

• 强一致性– 同一行数据的读写只在同一台 regionserver 上

进行;• 水平伸缩– region 的自动分裂以及 master 的 balance ;– 只用增加 datanode 机器即可增加容量;– 只用增加 regionserver 机器即可增加读写吞吐

量;

Page 9: Hbase简介与实践分享

HBase Features(Cont.)

• 行事务– 同一行的列的写入是原子的;

• Column Oriented + 三维有序– SortedMap(RowKey,

List(SortedMap(Column, List(Value,Timestamp)) )

)– rowKey (ASC) + columnLabel(ASC) + Version (DESC) --> value

Page 10: Hbase简介与实践分享

HBase Features(Cont.)

• 支持范围查询– Scan scan=new Scan(Bytes.toBytes("0"), Bytes.toBytes("20"));

• 高性能随机写– WAL (Write Ahead Log)

Page 11: Hbase简介与实践分享

HBase Features(Cont.)

• 和 Hadoop 无缝集成– Hadoop 分析后的结果可直接写入 HBase ;– 存放在 HBase 的数据可直接通过 Hadoop 来进

行分析。

Page 12: Hbase简介与实践分享

HBase 能用于 Online 场景吗?

Why not? just see users and performance

Page 13: Hbase简介与实践分享

HBase Users

• Facebook– Messages– Realtime analytics for Big Data

• Trend Micro• Adobe• Twitter• Yahoo!

Page 14: Hbase简介与实践分享

HBase 性能• 随机写( K: 200 byte V: 1024 byte )

region server 机器: 12 块 1T 的 SATA 盘 7200rpm , No Raid , 24G , Xeon5620 2.4GHz ,千兆网卡; Java Heap: 12G

Page 15: Hbase简介与实践分享

HBase 性能 (Cont.)

• 随机写( K: 200 byte V: 1024 byte )– avg: 3ms ,吞吐量: 1w tps/rs

Page 16: Hbase简介与实践分享

HBase 性能 (Cont.)

• 10 亿 key ( 1T 数据量)随机读, 12 台rs , cache: 4g/ 台;

Page 17: Hbase简介与实践分享

HBase 性能 (Cont.)

• 之前的场景, cache 全命中的状况:– avg: <1ms

Page 18: Hbase简介与实践分享

HBase 不支持的• 二级索引;• sql/join/ 跨行跨表等 RDBMS 特性;

Page 20: Hbase简介与实践分享

HBase @ Taobao

• 已上线的 online 项目– 4 个,数据量为 70T ;

• 即将上线的 online 项目– 6 个,到时数据量将上涨到 200T+ ;

• More Details pls attend– Java 版的存储和搜索介绍 [15:50 – 17:30]

Page 21: Hbase简介与实践分享

我们的 HBase

• 自动的测试体系– more powerful then YCSB!

Page 22: Hbase简介与实践分享

我们的 HBase(Cont.)

• 运维体系– 运行指标;– 快速判断集群健康状况;– 帮助分析集群性能。

Page 23: Hbase简介与实践分享

我们的 HBase(Cont.)

• 改进 HBase– Table Balance– Client put bug– Compact 优化

– Master恢复时间过长

Page 24: Hbase简介与实践分享

我们的 HBase(Cont.)

• 扩展 HBase– 支持 Server 端计算• group by,avg,sum 等

– 按 Group 资源隔离和优先级控制

Page 25: Hbase简介与实践分享

HBase 实践经验• 合理设计 rowKey & Pre-Sharding– 避免仅操作集群中的少数几台机器;– 根据数据量、 region server 数合理 pre-

sharding 。

Page 26: Hbase简介与实践分享

HBase 实践经验 (Cont.)

• 容量影响因素– 开启压缩• lzo• create table ‘t1’,{NAME => ‘cf1’, COMPRESSION => ‘lzo’}

Page 27: Hbase简介与实践分享

HBase 实践经验 (Cont.)

• 写速度关键因素– Table region 分布均衡;– 单台 region server 的 region 数;– hbase.regionserver.handler.count– hbase.regionserver.global.memstore.upperLimit– hbase.hregion.memstore.block.multiplier– hbase.hstore.blockingStoreFiles– hbase.hregion.max.filesize

Page 28: Hbase简介与实践分享

HBase 实践经验 (Cont.)

• 读速度关键因素– 单台 Region Server 上的 Region 数;– StoreFile 数;– bloomfilter ;– in-memory flag;– blockcache 设置;– hfile.block.cache.size ;

Page 29: Hbase简介与实践分享

HBase 实践经验 (Cont.)

• 二级索引– 合理使用三维有序• More details pls attend 技术沙龙

– 冗余– 离线

Page 30: Hbase简介与实践分享

Any

Questions

Page 31: Hbase简介与实践分享