- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
HBase at Tencent
来自腾讯的工程师程广旭为我们带来了 HBase 在腾讯的业务中的应用场景和经验。
腾讯目前有90多个 HBase 集群,最大的集群有500多台节点。腾讯内部多个业务包括腾讯视频,微信支付和腾讯云等都在使用 HBase 服务。其首先分享了使用 HBase 进行数据迁移的经验:Replication 和 ExportSnapshot.在实际使用中,业务每天的数据量都很大,这些数据需要保存的周期要么很大,要么很小。因此采取了按天分表的方式,也就是每天会创建一个新的表,对于过期的数据,直接把当天的表删掉即可。其次分享了对带宽的优化。
写入 HBase 的流量主要有五个部分:
写入
WAL
Flush
Small Compaction
Major Compaction
优化的方法有:
开启 CellBlock 的压缩。
WAL 的压缩。
增大 memstore,减少 Flush,减少 Compaction.
减少 Compaction 的线程数目。
关闭 Major Compaction.
按天建表。
最后介绍了如何共享 RestServer.当每个 HBase 集群搭建一个 RestServer 时,如果读取集群的请求很少,那么集群的 RestServer 资源比较浪费。腾讯做了一个改进,配置一个 RestServer 可以访问多个 HBase 集群,同时在 MySQL 里记了哪些表可以通过这种方式访问。
展开查看详情
1 .
2 .HBase At Tencent Andrew Cheng | 程广旭 Tencent | HBase Committer
3 .Content 01. HBase Service In Tencent 02. Applications 03. Practices & Optimization
4 .01. HBase Service In Tencent
5 .HBase Story in Tencent l Began using since 2013 l Used version l 0.94.17 -> 0.98.6 -> 1.2.5 -> 2.2.0 (ing) l Largest cluster more than 500 nodes 90+ 4000+ 10PB+ 3Tri+ Clusters Nodes Data RPD
6 .Overview HBase Users come from 6 groups , more than 100+ different applications
7 .Architecture Phoenix Advertiseme Deploy Center Tenpay Wepay Game … nt OpenTSDB Doss TDBank Spark Tookit RestServer S2Graph Lhotse HBase Api ThriftServer monitoring Kylin Tencent HBase Zookeeper TNM2
8 .02. Applications
9 .Tencent Ads – Real-Time Logjoin System Data Source Mixer Exposure Click … Transport TDBank Logical LogJoin LogJoin LogJoin LogJoin Association Table Storage Tencent HBase Flow Table Consumer Model learning Freshness Budget control Report
10 .Tenpay - Transaction record Data Source MySQL Application Application Binlog Paser DBSync C++ JAVA Read Cache Hippo Read Thrift Server Write TDSort Read Write Storage Tencent HBase
11 .03. Practices & Optimization
12 .Practices–Data migration Business-insensitive data migration Cluster A Cluster B add_peer delete_snapshot Client switch to new cluster disable_peer enable_peer Check Data Set REPLICATION_SCOPE => '1' Set REPLICATION_SCOPE => '0' snapshot clone_snapshot ExportSnapshot
13 .Practices–Table l Create table per day l Large amount of data l TTL is short l Benefit l Reduce the amount of data in compaction l Easy to delete expired data
14 .Optimization - Bandwidth Input Data Input Data Input Data ① Input Data ② RS2 and RS3 Wal data ① ② ③ RS2 and RS3 Flush data Wal Flush ③ Small compact ④ ④ RS2 and RS3 Small compact RS1 RS2 RS3 Large compact ⑤ ⑤ RS2 and RS3 Large compact
15 .Optimization - Bandwidth l Enable compressing of CellBlocks l Wal compressor l Increase the size of memstore l Reduce the number of threads about compaction l Turn off major compaction l create tables by day
16 .Optimization - Online filtering of dirty data l A large amount of data which have the same Rowkey l How to find filter rowkeys? Input Data l ResponseTooSlow Yes l How to set filter rowkeys? Filter Yes l hbase.hregion.filter.rowkeys Filter Enable l How to refresh filter rowkeys? No l update_config No Write
17 .Optimization - Prefix Bloom Filter(HBASE-20636) l ROWPREFIX_FIXED_LENGTH Create Table: l ROWPREFIX_DELIMITER uin ts action Prefix File info: Bloom Filter
18 .Optimization - Prefix Bloom Filter(HBASE-20636) Write Read Input Data Get prefix key by Scan prefix_length Rowkey Get prefix key by prefix_length Computer hash {StartKey,EndKey} value Computer hash value No Same No prefix? Hit Filter StoreFile BloomFilter? Set BloomFilter Yes Prefix length Yes Yes No >= Last line? prefix_length Yes No Not Filter StoreFile Write BloomFilter information to StoreFile metadata
19 .Optimization - RestServer User Nginx RestServer A RestServer B RestServer C RestServer D Cluster A Cluster B Cluster C
20 .Optimization - RestServer User Nginx Mysql RestServer A RestServer B RestServer C Cluster A Cluster B Cluster C
21 .Optimization - RestServer l Only maintain one configuration l use effectively resources l User-friendly access
22 .HBase Community l 1 Committer, 2 Contributor l Total commits: 80+ l Feature l HBASE-20636 Introduce two bloom filter type : ROWPREFIX_FIXED_LENGTH and ROWPREFIX_DELIMITED l HBASE-19799 Add web UI to rsgroup l HBASE-20243 [Shell] Add shell command to create a new table by cloning the existent table l HBASE-19483 Add proper privilege check for rsgroup commands l ………
23 .Join Us Dept. Wechat Personal Wechat
24 .Thanks!