HBase在京东的完善与创新
随着大数据处理时代的到来,NoSQL风生水起。京东作为国内最大的综合网络零售商,随着业务数据量爆发式增长,传统的关系数据库在海量数据面前开始显得捉襟见肘,于是京东云平台在Hadoop生态集群经验积累的基础上,引入了HBase作为海量数据存储的基础设施。虽然引入时间不长,但京东数十个业务系统已经使用了HBase,包括实时在线业务、离线批量计算业务、批量导入兼在线访问等业务类型。为了提高资源利用率,多个业务系统可能复用一个HBase集群。而开源的HBase处于发展期,业务之间的存储和访问产生了一些干扰和冲突。于是,为了应用到生产环境尤其是在线业务系统中,京东第一阶段对HBase进行了完善,并根据京东需求做出了自己的创新。这些完善和创新包括:
1.实现了权限管理模块。多个业务系统之间存在的数据安全隐患,且业务系统可以随意进行创建表等DDL操作,因此京东开发了权限管理模块,对DDL权限控制。在此基础上,在表级别对数据进行了访问权限康,隔离了数据等敏感信息的访问,业务系统不用担心数据泄密、数据不一致等安全问题,因为没有权限的系统是不会接触到其他任何业务系统的数据的。值得一提的是,这个模块引入的时间开销最大不超过0.3毫秒,能很好的支持线上业务的开展,而业界还没有如此优异的性能数据。
2.实现了流量控制模块。在关系数据库中,因为是单节点部署,可以通过连接数等控制访问的并发,其流量也局限于一个节点。而对于HBase这样的分布式系统,流量分布于数个服务器节点,多个应用系统造成的访问压力不是单台节点可以承受的。通常情况下,业务访问均衡到多台节点上,压力可以分散。但某些情况下,尤其对于在线业务,访问由用户行为决定的情况下,可能出现平常几台甚至数十台的压力突然压在一台节点上,非常容易造成某个节点宕机。为避免这种情况,保证系统的可用性,京东通过限流机制来控制一台节点上承受的流量和并发连接数。在实现流量控制的同时,保证了客户端不会超时、阻塞的请求不会占用大量HBase堆内存(从而避免了内存溢出)、用户无需对其应用做出改变。其中有一个很重要的特征,就是控制会根据业务不同的SLA进行控制,有效的保证了关键业务的服务级别。
3.开发了目前业界最完备的管控中心。HBase与传统的关系数据库相比,其管理和运维工具非常缺乏。业内一些友商开发了自己的管理和监控系统以满足其特定的需求,但京东很难使用。京东数个集群,成百上千的服务器,维护成本非常高,信息收集与跟踪也影响了故障的发现和恢复时间。为了支持HBase之上的各类关键业务系统,需要及时获知故障,尽快恢复集群使用,一个统一的监控和管理中心应运而生。管控中心将所有集群管理放在一个中心,真正做到了快速高效运维,比如:
(1)实时监控多个各服务节点运行状况、服务状况、集群读写响应时间,及时掌握集群性能波动;实时掌握各节点(Region Server)负载情况及请求数,并根据负载情况排序,重点关注高负载节点;
(2)实时统计大量信息并具有预警和报警机制,比如:给节点JVM堆内存使用情况、总体的MemStore、托管的数据文件综述及数据大小;每个节点下,各数据分区的读写请求情况,并根据请求数对分区排序;各数据分区的MemStore、数据文件个数、数据文件大小等信息;统计了每张表的请求数、该表的分区及分区的请求数,并根据请求数排序,对热点数据了如指掌;
(3)将所有管理操作,无论是创建表、删除表、使能表等表操作,还是分区管理、分区均衡等分区操作等,都统一集成到管控中心,由统一入口进行管理。
(4)另外一个具有创新意义的是,京东将HBase本身的HBCK工具经过改造,放在了管控中心,将该工具的运维效率提升了数十倍。
值得一提的是,京东在HBase上所
HBase在京东的完善与创新的更多相关文章
- 京东无人超市的成长之路 如何利用AI技术在零售业做产品创新?
随着消费及用户体验的需求升级.人货场的运营效率需求提升.人工智能技术的突破以及零售基础设施的变革等因素共同推动了第四次零售革命的到来,不仅在国内,国外一线巨头互联网亚马逊等企业都在研发无人驾驶.无人超 ...
- TOP100summit:【分享实录】京东1小时送达的诞生之路
本篇文章内容来自2016年TOP100summit 京东WMS产品负责人李亚曼的案例分享. 编辑:Cynthia 李亚曼:京东 WMS产品负责人.从事电商物流行业近10年,有丰富的物流行业经验,独立打 ...
- HBase在数据统计应用中的使用心得
转载自:http://www.cnblogs.com/panfeng412/archive/2011/11/19/2254921.html 1. 数据统计的需求 互联网上对于数据的统计,一个重要的应用 ...
- HBase全网最佳学习资料汇总
HBase全网最佳学习资料汇总 摘要: HBase这几年在国内使用的越来越广泛,在一定规模的企业中几乎是必备存储引擎,互联网企业阿里巴巴.百度.腾讯.京东.小米都有数千台的HBase集群,中国电信的话 ...
- 企业打开云HBase的正确方式,来自阿里云云数据库团队的解读
一.HBase的历史由来 HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性.高性能.高伸缩的分布式存储系统,使用HBase技术可在廉价PC Se ...
- NGK以强大的创新能力赋予NGK公链超级实用的特性
公链从大趋势看是一个不断迭代的过程,不管是共识算法.网络架构.开发者协议都在一代一代不断完善跟创新. NGK公链作为公链赛道上的后起之秀,对于主流公链技术的局限性以及下一代公链技术的发展方向都有非常清 ...
- SSM商城项目(一)
1. 学习计划 1.电商行业的背景. 2.宜立方商城介绍 3.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 4.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomc ...
- JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合
1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...
- JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建
1. 学习计划 1.电商行业的背景. 2.电商行业的技术特点 3.商城的介绍 a) 常用的名词介绍 b) 系统功能介绍 4.淘淘商城的系统架构 a) 传统架构 b) 分布式架构 c) 基于服务的架构 ...
随机推荐
- 反汇编(Disassembler) iPhone
什么是反汇编? 反汇编就是把可执行的二进制文件转为汇编代码,进而可以研究该程序.IDA Pro Adv v5.2 版本起已直接支援 iPhone ARM 代码的静态反汇编分析.IDA Pro Adv ...
- Android init进程概述
init进程,其程序位于根文件系统中,在kernle自行启动后,其中的 start_kernel 函数把根文件系统挂载到/目录后,在 rest_init 函数中通过 kernel_thread(ker ...
- Android开发UI之开源项目第一篇——个性化控件(View)篇
原文:http://blog.csdn.net/java886o/article/details/24355907 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍A ...
- OneNote快捷键
转载自:http://onenoter.com/2013/04/5792 记录笔记和设置笔记格式 键入和编辑笔记 若要执行此操作 按 打开一个新的 OneNote 窗口. Ctrl+M 打开一个小的 ...
- css揭秘之按钮的实现技巧
<html> <title>css</title> <style> button{ padding: .3em .8em; border: 1px so ...
- 扫描.net dll引用dll
最近升级系统里的NHibernate,从3.3到4,项目工程太多, 一个模块分bll,dal,model,web,test,10几个模块,就要60多dll,升级一次太头疼. 编译过后,有时候会有的dl ...
- bzoj1471
转化补集的思想,首先求出任意两点之间路径数目 然后求两条路径第一次相交在点k(按照拓扑排序的顺序)的数目,显然这里要用到容斥 然后pascal有坑爹的范围检测,所以运算中有些不会影响到答案但会爆int ...
- bzoj3211,bzoj3038
线段树的裸题: 但是操作很奇怪,开方是不能lazy tag的 看来只能暴力修改了 但注意,开放开到1的时候就不用开,立一个flag就可以了 这可以大大的优化: 其实我是来复习线段树的 ..] of i ...
- LeetCode Intersection of Two Linked Lists (找交叉点)
题意: 给两个链表,他们的后部分可能有公共点.请返回第一个公共节点的地址?若不重叠就返回null. 思路: 用时间O(n)和空间O(1)的做法.此题数据弱有些弱. 方法(1)假设两个链表A和B,用两个 ...
- apache开源项目--ApacheDS
ApacheDS (Apache Directory Server)的核心是目录服务,可以保存数据,并对不同类型的数据进行搜索操作.协议的实现在目录服务器顶层工作,提供与数据存储.搜索和检索有关的 I ...