随着大数据处理时代的到来,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在京东的完善与创新的更多相关文章

  1. 京东无人超市的成长之路 如何利用AI技术在零售业做产品创新?

    随着消费及用户体验的需求升级.人货场的运营效率需求提升.人工智能技术的突破以及零售基础设施的变革等因素共同推动了第四次零售革命的到来,不仅在国内,国外一线巨头互联网亚马逊等企业都在研发无人驾驶.无人超 ...

  2. TOP100summit:【分享实录】京东1小时送达的诞生之路

    本篇文章内容来自2016年TOP100summit 京东WMS产品负责人李亚曼的案例分享. 编辑:Cynthia 李亚曼:京东 WMS产品负责人.从事电商物流行业近10年,有丰富的物流行业经验,独立打 ...

  3. HBase在数据统计应用中的使用心得

    转载自:http://www.cnblogs.com/panfeng412/archive/2011/11/19/2254921.html 1. 数据统计的需求 互联网上对于数据的统计,一个重要的应用 ...

  4. HBase全网最佳学习资料汇总

    HBase全网最佳学习资料汇总 摘要: HBase这几年在国内使用的越来越广泛,在一定规模的企业中几乎是必备存储引擎,互联网企业阿里巴巴.百度.腾讯.京东.小米都有数千台的HBase集群,中国电信的话 ...

  5. 企业打开云HBase的正确方式,来自阿里云云数据库团队的解读

    一.HBase的历史由来 HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性.高性能.高伸缩的分布式存储系统,使用HBase技术可在廉价PC Se ...

  6. NGK以强大的创新能力赋予NGK公链超级实用的特性

    公链从大趋势看是一个不断迭代的过程,不管是共识算法.网络架构.开发者协议都在一代一代不断完善跟创新. NGK公链作为公链赛道上的后起之秀,对于主流公链技术的局限性以及下一代公链技术的发展方向都有非常清 ...

  7. SSM商城项目(一)

    1. 学习计划 1.电商行业的背景. 2.宜立方商城介绍 3.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 4.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomc ...

  8. JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合

    1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...

  9. JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建

    1. 学习计划 1.电商行业的背景. 2.电商行业的技术特点 3.商城的介绍 a) 常用的名词介绍 b) 系统功能介绍 4.淘淘商城的系统架构 a) 传统架构 b) 分布式架构 c) 基于服务的架构 ...

随机推荐

  1. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

  2. tcp连接的3次握手

    http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-3.htm synchronou ...

  3. BMap介绍

    API引用路径: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&am ...

  4. [swustoj 1021] Submissions of online judge

    Submissions of online judge(1021) 问题描述 An online judge is a system to test programs in programming c ...

  5. ehcache 分布式集群同步数据实例

    本文使用rmi方式,借鉴百度能搜到的文章,但是均不能做到数据同步,做了些改动完全没问题,更详细说明介绍百度即可.直奔主题,可运行的demo实例! 创建一个maven项目,配置pom pom.xml & ...

  6. 修改Android默认背光值

    /********************************************************************* * 修改Android默认背光值 * 说明: * 本文主要 ...

  7. Java中的volatile

    关于volatile 在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的.而随着JVM的成熟和优化,现在在多线程环境下 volatile关键字的使用变得非常重要. ...

  8. 陈正冲老师讲c语言之声明和定义的区别

    什么是定义?什么是声明?它们有何区别? 举个例子: A)int i; B)extern int i;(关于extern,后面解释) 哪个是定义?哪个是声明?或者都是定义或者都是声明?我所教过的学生几乎 ...

  9. Android 隐藏RadoiButton左边按钮

    声明方式 添加属性 android:button=“@null”? 代码方式 radioBtn.setButtonDrawable(new StateListDrawable());

  10. 使用SVN小结

    自从加入团队后,开始使用SVN,以下是个人对SVN的一些认识和小结. 一.SVN是什么? SVN是版本管理工具,譬如团队进行项目开发,项目代码都储存在服务器上,成员可用SVN在本地获得并更新代码. 二 ...