随着大数据处理时代的到来,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. poj 1924 Paths on a Grid(组合数学)

    题目:http://poj.org/problem?id=1942 题意:给定一个矩形网格的长m和高n,其中m和n都是unsigned int32类型,一格代表一个单位,就是一步,求从左下角到右上角有 ...

  2. 记一次SSH登陆失败问题的定位

    创建用户之后,使用ssh协议登陆提示失败. useradd -d /home/hdp -m hdp -g dba -s /bin/bash 通过命令 ssh -v hdp@127.0.0.1 登陆,查 ...

  3. Apache HTTP Server多个拒绝服务漏洞

    漏洞版本: Apache Group Apache HTTP Server < 2.4.9 漏洞描述: BUGTRAQ ID: 66303 CVE ID: CVE-2013-6438,CVE-2 ...

  4. LeetCode Intersection of Two Linked Lists (找交叉点)

    题意: 给两个链表,他们的后部分可能有公共点.请返回第一个公共节点的地址?若不重叠就返回null. 思路: 用时间O(n)和空间O(1)的做法.此题数据弱有些弱. 方法(1)假设两个链表A和B,用两个 ...

  5. OS.ENVIRON()详解

    OS.ENVIRON()详解

  6. (转)理解OAuth 2.0

    转自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...

  7. CF 560e Gerald and Giant Chess

    题意:在h×w的棋盘中从左上角走到右下角,只能向右或向下走,有n个点不可以经过,一共有多少种方案. 解法:dp.先对点按横坐标排序(横坐标相等按纵坐标,也可以反过来)dp[i]表示不经过其他非法点走到 ...

  8. 【Python】不定期更新学习小问题整理

    1 ctrl+D 退出python 2 from __future__ import division  小数除法  1/2    整除符号   //  比如4//2 3 为什么要写这个? reloa ...

  9. python 连接oracle 数据库

    我们在测试中可能需要对oracle 数据库进行操纵,比如这样一个场景,在往oracle 里面插数据的同时,另一个工具从里面读,如何能保证读出来的数据是有顺序的,即:先插入进去的先读出来,根据这个场景们 ...

  10. SELinux的故障排除一例

    刚刚采用Puppet部署了dokuwiki,不过配置完成后报错: DokuWiki Setup Error The datadir ('pages') at /pages is not found, ...