收藏 分销(赏)

京东大数据技术白皮书.pdf

上传人:宇*** 文档编号:4166282 上传时间:2024-08-08 格式:PDF 页数:120 大小:4.51MB
下载 相关 举报
京东大数据技术白皮书.pdf_第1页
第1页 / 共120页
京东大数据技术白皮书.pdf_第2页
第2页 / 共120页
京东大数据技术白皮书.pdf_第3页
第3页 / 共120页
京东大数据技术白皮书.pdf_第4页
第4页 / 共120页
京东大数据技术白皮书.pdf_第5页
第5页 / 共120页
点击查看更多>>
资源描述

1、京东大数据技术白皮书京东大数据平台部出品 京东大数据平台部出品 京东大数据技术白皮书 1 目 录 目 录 序言序言.3 前言前言.5 1 1 京东大数据的发展历程京东大数据的发展历程.8 2 2 京东大数据的技术体系京东大数据的技术体系.10 2.12.1 数据采集和预处理数据采集和预处理.10 2.22.2 流量数据采集流量数据采集.13 2.32.3 数据存储体系数据存储体系.22 2.42.4 离线计算环境离线计算环境.34 2.52.5 实时计算环境实时计算环境.37 2.62.6 机器学习环境机器学习环境.40 2.72.7 任务管理和调度任务管理和调度.43 2.82.8 资源监控

2、和运维资源监控和运维.49 3 3 京东大数据的数据管理京东大数据的数据管理.54 3.13.1 数据架构设计数据架构设计.55 3.23.2 数据资产管理数据资产管理.57 3.33.3 统一指标体系统一指标体系.65 3.43.4 数据安全管理数据安全管理.66 3.53.5 数据服务管理数据服务管理.68 4 4 京东大数据的数据产品京东大数据的数据产品.75 4.14.1 京东商智京东商智.75 4.24.2 智能营销智能营销.76 京东大数据技术白皮书 2 4.34.3 数据管家数据管家.77 4.44.4 祖冲之祖冲之.78 5 5 京东大数据的应用场景京东大数据的应用场景.80

3、5.15.1 营销领域营销领域.80 5.25.2 物流领域物流领域.81 5.35.3 供应链领域供应链领域.82 5.45.4 智能零售智能零售.85 5.55.5 金融业务创新金融业务创新.86 5.65.6 时尚创新时尚创新.88 5.75.7 人工智能人工智能.89 6 6 京东大数据的合作生态京东大数据的合作生态.93 7 7 京东大数据的特点京东大数据的特点.95 7.17.1 高可用和高性能高可用和高性能.95 7.27.2 一站式服务平台一站式服务平台.98 7.37.3 可靠的安全保障可靠的安全保障.99 8 8 京东大数据展望京东大数据展望.103 8.18.1 融合统一

4、融合统一.103 8.28.2 开放合作开放合作.109 8.38.3 技术前瞻技术前瞻.110 结语结语.117 参考文献参考文献.118 京东大数据技术白皮书 3 序言序言 众所周知,大数据是企业的基本生产资料,数据信息是企业宝贵的资产。不同于其他资产,数据资产主要在企业运营过程中产生,较易获取,但要持续积累、沉淀和做好管理却并不容易,这是一项长期且系统性的工程。未经“雕琢”的数据是一组无序、混乱的数字,并不能给企业带来何种价值,从庞杂晦涩的数据中挖掘出“宝藏”充满着挑战,这需要将业务、技术与管理三者相互融合起来进行创新。京东作为一家业内领先的互联网科技公司,完整的产业链条带来了价值可沽的

5、海量大数据,丰富的业务场景也为技术发展提供了最佳创新土壤。从认知、探索到今天京东技术上的百花齐放,我们经历了最为艰苦的创新和付出。业务的复杂与多元化,数据的飞速增长,给我们带来了很多棘手问题,但也使得大数据平台拥有更强大的能力,形成了一套完整的技术体系和有效的数据管理方法,并在实践中得以验证和夯实。京东大数据平台作为京东集团的数据中台,支撑了京东无界零售的数据运营和创新。京东大数据技术白皮书总结了大数据技术在京东的落地和成长,分享了大数据技术体系和管理架构,阐述了大数据在京东的典型业务应用场景,并对大数据的技术方向进行了展望,是一次对京东大数据平台的最全面解读,希望我们的实践和思考能给同行以启

6、发和参考,我们期待和业界一起推京东大数据技术白皮书 4 动国内大数据产业的进步和发展。京东京东集团集团首席首席技术官技术官 张晨张晨 京东大数据技术白皮书 5 前言前言 大数据概念近年来受到高度关注,大数据在各个行业的应用及其带来的影响也引起越来越多的讨论。大数据正在从单纯的技术概念向实际部署应用转变;从少数领域向众多领域渗透;从企业内部向各产业与公共服务方向扩展。目前,无论国内还是国外,大数据技术都在经历前所未有的快速演变,以满足各种应用的需求。我国已将大数据发展确定为国家战略,强调要瞄准世界科技前沿,集中优势资源突破大数据核心技术,加快构建自主可控的大数据产业链、价值链和生态系统。大数据产

7、业在国内发展得如火如荼,据统计,2016 年大数据产业规模达 14500 亿元,2017 年达 19570 亿元,到 2020 年将达到 5 万亿元。大数据技术已经在如电子商务、政务、民生、金融、工业、医疗等多个领域中广泛应用。从国内的大数据技术和行业应用发展来看,大数据技术的基础架构技术已日趋成熟,大数据领域由技术创新驱动转向应用创新驱动的趋势开始显现,但更多的传统企业在如何建设大数据平台,如何利用大数据来驱动企业业务发展上仍然缺乏经验,这在一定程度上制约了大数据技术的大规模产业应用。京东拥有全渠道零售和端到端的高质量大数据,包含了用户的浏览和消费行为、商品制造和销售、物流仓储配送以及客服与

8、京东大数据技术白皮书 6 售后等丰富完整的信息。同时,京东业务中包含有大量丰富的大数据应用场景,是大数据实践的最佳场所。早在 2010 年,京东集团就启动了大数据领域的研发和应用探索工作,经过八年来的持续投入,京东大数据平台无论从规模、技术先进性,还是体系的完整性等方面均已达到国内一流水平。作为支撑公司数据运营的重要阵地,目前已拥有集群规模 40000+服务器,数据规模达800PB+,每日的 JOB 数 100 万+,业务表 900 万+,每日的离线数据日处理量 30PB+,单集群规模达到 7000+台,实时计算每天消费的数据记录近万亿条。京东大数据平台建设了完整的技术体系,包括离线计算、实时

9、计算和机器学习平台,可以满足多种复杂应用场景的计算任务。元数据管理、数据质量管理、任务调度、数据开发工具、流程中心等构成了全面的数据运营工具。分析师、指南针等数据应用产品提供了便利的数据分析功能,以及敏感数据保护、数据权限控制等策略方案,能够最大程度地保护数据资产的安全。京东大数据在驱动企业业务增长,提升运营效率,为客户提供个性化、高品质产品及服务上发挥了重要作用。利用大数据分析和挖掘,京东打造了个性化商城,自主研发了智能门店解决方案,打造了智能供应链体系,提高了物流配送的效率,实现了知人、知货、知场景的购物体验。京东大数据的应用已渗透到了业务的各个环节。近几年,京东大数据承担了包括大数据和人

10、工智能领域在内京东大数据技术白皮书 7 的多项国家级重点研发项目。2017 年,京东获得了国家“大数据智能管理与分析技术”国家地方联合工程研究中心的授牌。这些都是国家对京东大数据实力的认可,是京东技术实力的体现。京东是“开放的京东”,随着国家大数据战略的逐步落实,我们希望能输出京东的大数据技术能力,建设开放的技术平台,借助技术和数据为政府和社会创造更多价值,我们希望借此白皮书的发布,将京东的大数据技术实践分享出来,为其他企业提供参考,同时,我们也欢迎更多的合作伙伴与我们一道,共同在大数据领域深入探索,为我国大数据产业的发展贡献力量。京东大数据技术白皮书 8 1 1 京东大数据的发展历程京东大数

11、据的发展历程 2010 年,京东集团启动了在大数据领域的研发和应用探索工作,正式组建京东大数据部,并确立了数据集中式的数据服务模式,成为企业大数据最早的实践者之一。大数据平台的发展是随着京东业务同步发展的,由原来的传统数据仓库模式逐步演变为基于 Hadoop 的分布式计算架构,如图 1 所示。技术领域覆盖 Hadoop、Kubernetes、Spark、Hive、Alluxio、Presto、Hbase、Storm、Flink、Kafka 等大数据全生态体系。目前拥有研发团队 500+人,累计获得技术专利 400+个。经过多年的持续投入,京东大数据已成为企业大数据的领跑者。目前已拥有集群规模

12、40000+服务器,单集群规模达到 7000+台,数据规模 800PB+,日增数据 1P+,日运行 JOB 数 100 万+,业务表 900 万+张。每日的离线数据日处理 30PB+,实时计算每天消费的行数近万亿条。图 1:京东大数据发展历程 京东大数据技术白皮书 9 京东大数据建设了全生态核心产品体系,是京东大数据业务的基础服务平台,为京东全业务生态提供一站式、自助式的大数据处理全流程解决方案。涵盖数据采集、存储、加工、分析、可视化、机器学习等专业化产品和服务,在保障数据安全的前提下,提供更可靠、高性能的服务,大幅降低大数据使用门槛,帮助京东大数据业务快速落地,助力京东实践以数据为驱动的业务

13、变革与发展。京东大数据技术白皮书 10 2 2 京东大数据的技术京东大数据的技术体系体系 京东大数据平台构建了完整的技术体系,通过一系列的技术方法实现了更可靠、高可用、具有京东自身特色的平台环境。如图 2 所示,平台覆盖 Hadoop、Kubernetes、Spark、Hive、Alluxio、Presto、Hbase、Storm、Flink、Kafka 等技术全栈,满足各类应用场景对数据平台的要求。图 2:京东大数据平台技术架构 2.12.1 数据采集和预处理数据采集和预处理 数据采集是大数据的基石。京东包含了电商所涉及的营销、交易、仓储、配送、售后等环节,每个环节都会产生大量的业务数据,同

14、时线上的业务日志系统和消息系统也会产生海量的数据。为了将上述结构化和非结构化数据进行采集,以便后续被数据应京东大数据技术白皮书 11 用类系统所使用,京东搭建了一套标准化的数据采集系统数据直通车。数据直通车为京东线上数据接入京东数据仓库提供了一套完整解决方案,为后续的查询、分发、计算和分析提供数据基础。直通车提供丰富多样、简单易用的数据采集功能,可满足离线计算、实时计算、集成分发等多种需求,并进行全程状态监控。根据不同业务场景对于数据时效性的不同要求,直通车支持离线数据采集和实时数据采集两种数据采集方式。离线数据采集主要支持的数据类型为:MySQL、SQL Server、Oracle、Mong

15、oDB、HBase、ElasticSearch、离线文件;实时数据采集主要支持的数据类型为:MySQL、日志、HTTP API、JMQ 等,并支持 API 接口实现实时数据上报。离线采集每天在零点后抽取前一天增量的数据(T+1),然后将 T+1 的数据与已有的全量数据合并形成新的全量数据,并将数据储存到目标表对应的分区中。图 3 展现了离线数据采集的完整架构:京东大数据技术白皮书 12 图 3:离线数据采集架构 数据直通车同样为实时数据采集提供了一套标准化的解决方案,实时数据采集目前支持 MySQL、SQL Server、Oracle、JMQ、日志等多种数据源类型。对于 MySQL 数据库,系

16、统参照数据库的主从复制模式,通过把关系型数据库的 Binlog 日志实时抓取并解析发送到实时数据总线(JDQ)内。实时采集按照数据库实例粒度抓取 MySQL 实例上的所有 Binlog,在程序内部进行 Binlog 的实时解析并过滤出所需要的库表,再以表粒度发送到不同的 Topic 上,方便下游用户进行业务表粒度的实时处理。JMQ 是京东内部线上系统的消息中间件服务,很多业务数据在落数据库之前都会经过 JMQ 系统在不同的业务系统之间进行传递。数据直通车可以把 JMQ 内的线上系统消息实时地同步到实时数据总线(JDQ)内,再由数据消费者按需处理,极大地提京东大数据技术白皮书 13 高了数据处理

17、系统的服务能力。京东内部所有系统的实时数据都会通过数据直通车实时采集到 JDQ 系统,统一由 JDQ 对下游业务需求提供实时数据消费服务。该方案帮助业务用户在技术层面屏蔽了实时数据采集的复杂度,并使得系统能够提供稳定的服务能力。2.22.2 流量数据采集流量数据采集 目前京东拥有丰富的入口平台,包括 PC 上看到的网站,无线客户端上访问的 H5 页面,移动端应用,微信手 Q 内的购物入口,京东自主研发或合作的智能设备,微信生态下的小程序,以及通过开普勒开放赋能给其他合作的 APP 等等。多样的数据展示形式使得不同的访问入口每天都有大量的用户访问,流量数据采集成为了京东大数据的一个重要环节。由于

18、入口平台实现原理不同,数据采集的诉求也不同,包括针对不同的事件,不同的场景有着特定的采集诉求等,以下我们将开始介绍在京东流量数据采集的相关技术。2.2.12.2.1 浏览器页面的采集浏览器页面的采集 2.2.1.12.2.1.1 采集流程采集流程 浏览器的日志采集,主要包含两大类日志:页面日志、点击及自定义日志,其中页面日志采集主要是指浏览器中页面被加载时的日志,而点击及自定义日志则是相关行为被触发后产生的日京东大数据技术白皮书 14 志,页面日志采集的流程如图 4 所示。图 4:页面日志采集流程 页面日志采集主要包含以下几个环节:(1)日志采集。网站的页面在上线前,会在页面内植入一段JS 的

19、采集脚本,当用户在访问网站的页面时,浏览器会进行加载、解析并执行 JS 脚本,JS 脚本在执行过程中会收集当前页面的一些信息、浏览器环境的相关信息、用户访问上下文的信息(例如第几次访问网站,当前访问页面的上一页面信息等等)以及业务特性的相关数据。(2)日志上报。JS 脚本执行在执行完毕后,会将所有收集到的信息拼装到一个请求内,通过日志请求将数据发送到日志服务器。一般情况下,在 JS 执行完成后就会立即向日志服务器发送。(3)日志接收。日志接收服务器在接收到客户端发送来的京东大数据技术白皮书 15 日志请求后,会向浏览器返回一个请求成功的响应。日志服务器在接收到上报的日志后,还会在服务器上执行业

20、务定制的特殊处理,对日志进行过滤筛选,然后再将日志存储在本地磁盘或者发送至实时平台中,供下游使用。(4)日志存储。目前采集到的日志通过两种方式进行存储:离线和实时。其中离线主要指服务器在接收到日志请求后,会将请求进行简单处理后落地到本地的磁盘中,然后通过日志抽取的方式将本地的日志及时抽取到相应的数据仓库中,实时则是将请求的消息体实时地分发到相应的实时处理平台中进行缓存,下游则根据该缓存的数据进行后续的应用。(5)日志解析。下游业务在拿到原始日志后,结合自己的业务需求对数据进行过滤筛选,同时结合统计分析的需求对数据进行加工处理。日志经过了以上的几个步骤后,我们就完成了用户的流量数据收集。2.2.

21、1.22.2.1.2 页面日志页面日志 网页页面是网站最基本的载体,通过页面的形式将希望展示的内容呈现给用户。为了更好地了解页面的访问情况,就需要我们采集页面的访问日志,有了页面日志后,我们可以统计分析页京东大数据技术白皮书 16 面的浏览量(pv)、页面的访客数(uv)、页面的加载时长、页面的停留时长等情况,也可以进行上下游的分析,访问用户的分析,为营销策略调整提供数据支撑。页面日志主要是在用户访问页面的时候进行采集的,目前主要采集了页面的基本信息、页面上下文、页面业务信息、页面的其他基本信息。2.2.1.32.2.1.3 点击及自定义日志点击及自定义日志 点击及自定义日志,主要用于收集用户

22、在网站中除浏览以外的日志,主要包括交互日志、曝光日志、自定义日志等。对于交互日志,例如用户通过鼠标的相关操作,移动、点击鼠标等操作与页面发生交互,页面会根据交互行为得到相应的结果,在用户触发这些交互行为时,会触发页面采集的脚本,从而将该部分交互日志采集到。曝光日志则是根据用户访问页面后,页面自发展示的一些其他内容形式,例如弹窗,轮播图等等形式。为了看到曝光之后用户对该内容的转化效果,就需要知道目前曝光的具体情况,例如在什么时间、曝光给了那些用户等等。自定义日志则是根据业务特性定制的一些特殊日志,例如采集页面停留的位置,用户在页面中的访问路径等等。点击及自定义日志的采集方法主要为用户特定标记的信

23、息采集,即在网页上预设采集脚本,当该网页的某个位置被点击或自定义的行为被用户触发了,则会产生相应日志并上报给日志服京东大数据技术白皮书 17 务器。随着触发条件被同时采集的还包括用户的基本信息、页面的基本信息、浏览器的基本信息,以及访问历史相关的信息等。点击及自定义日志的采集,更好地还原了用户在网站页面中的访问情况。有时为了更好地记录用户的访问行为,需要使用相应的标识用来做各种场景的区分,同时在采集代码植入时就标记下来,这样在用户的行为发生时,相应的日志就能够采集到更完善的信息,为我们后续的数据统计分析及业务应用提供了帮助。2.2.22.2.2 移动设备日志采集移动设备日志采集 随着用户对移动

24、设备的依赖越来越重,用户的访问也逐步向移动端迁移,移动端的数据采集也越来越重要。目前移动设备基本以APP应用的方式进行对外应用,针对APP应用的数据采集,京东提供了自主研发的 SDK 工具。该 SDK 可以收集用户在 APP的各种事件行为数据,收集 APP 的性能日志,也支持研发采集一些自定义状态,自定义事件等场景的数据。SDK 被预置在 APP应用内,用户在使用 APP 的过程中,如果触发了预先设计的场景,将会触发 SDK 的采集方法,进而生成相应的用户行为日志,并收集到 APP 应用内,并在合适的时机下上报的日志接收服务器。2.2.2.12.2.2.1 页面标识页面标识 网站页面在浏览器内

25、访问时,会有相应的页面链接,而用户京东大数据技术白皮书 18 在移动设备上访问时,由于移动端的特殊性,页面都是以接口的形式展示,但接口不直观,数据人员无法直接访问展示,直接判定该页面具体信息,因此需要针对页面接口进行重新标识。京东提供了相应的管理界面,可以备注具体接口对应的别名信息,接口描述信息,业务可以快速地查阅和使用。2.2.2.22.2.2.2 页面事件页面事件 用户在移动设备上留下各种事件行为,事件行为都是由后台实现的一些通用接口方法来实现,为了标识这些事件,并且以更简单易懂的信息来标识,我们提供了页面事件管理的功能,通过事件管理来标识具体的行为事件。研发通过埋点开发,将这部分事件行为

26、植入到对应的接口中,再通过 SDK 进行采集上报,就可以快速地标识出用户的事件数据。2.2.2.32.2.2.3 特殊场景特殊场景 电商行业包含了两大特殊的业务场景:引流、跟单。引流:引流主要指的是广告渠道的引流效果跟踪,业务在站外投放广告,用户通过点击广告坑位进入网站,然后在网站中进行后续的访问,为了跟进各个广告位的流量进入及订单转化效果。京东目前对站外广告渠道进行打标,在用户通过点击广告位跳转到京东后,来源的链接上会有相应的广告参数,再借助业务制定的广告覆盖规则更新广告渠道信息,而这部分广告渠道信息将会京东大数据技术白皮书 19 保持在后续访问的所有页面内,通过页面的广告渠道信息就可以统计

27、分析出各个广告渠道的引流效果。跟单:跟单主要指的是订单来源的跟踪,跟单效果包含两大类,一个是站外的订单效果跟踪,一个是站内的订单效果跟踪。其中站外跟单效果分析,由于页面中包含了广告渠道的信息,因此可以通过页面中包含广告参数信息来统计分析,站内活动或者坑位的引入效果没有标识,我们设定了相应的跟单逻辑,通过对应的跟单逻辑可以跟踪各个坑位的订单引入效果。2.2.2.42.2.2.4 设备标识设备标识 目前移动设备可以通过 MEID,IMEI,IMSI,MAC,以及苹果的 UDID 信息来识别,但是随着用户的自我保护意识加强,苹果系统禁用设备标识,Android 新系统也对设备信息做了权限控制,用户的

28、基本设备信息获取愈发困难,想要进行设备标识成为了一个需要攻克的难题。为了更好地分析用户,识别一个用户的所有访问记录,将用户的画像信息描绘得更完善,就需要一个设备唯一标识。京东通过移动设备相关的硬件信息,并结合一定的历史数据及算法,融合出自己的唯一标识 JDID,通过该标识唯一标识一个设备。2.2.2.52.2.2.5 H5H5 与与 APPAPP 原生页原生页 我们在访问一个 APP 设备时,通常会包含两种页面形式,京东大数据技术白皮书 20 一种是 APP 原生页,一种是 H5 页面,其中 APP 原生页的数据采集通过 SDK 的方式来采集,H5 页面则是通过页面中的 JS 来进行采集,由于

29、是在同一个 APP 内访问,业务人员通常希望将APP 内的 H5 的数据算作 APP 的一部分,而由于采集方式的不同,数据需要进行统一,同时也需要相应的交互处理,即 H5 页面可以标识出来具体是在哪个 APP 应用内访问带来的。2.2.2.62.2.2.6 日志采集控制日志采集控制 用户在移动设备上访问后,每个操作都会产生一个操作日志,但并不是每生成一条日志就实时上报至服务器,而是在产生日志后,先暂存在客户端本地,再结合着相应的上报控制策略进行数据上报。其中上报策略主要指根据日志的业务特性,数据的时效性,用户的网络特性等等信息设定不同的上报策略,有些日志会因为其数据时效性的要求进行实时数据上报

30、,而有些日志则会在用户启动应用,或者间隔一段时间后将日志上报上来。2.2.32.2.3 客户端与服务器日志采集客户端与服务器日志采集 除了浏览器和移动设备外,用户可能有自己的客户端或者服务端的日志需要进行采集,京东提供了相应的数据采集方案。其中客户端也主要以服务器端方式进行日志采集,通过相应的接口调用,在后台组织好相应的日志形式,然后向日志接收服务器发送日志请求。日志接收服务器则根据约定的协议判定该日志是否京东大数据技术白皮书 21 为合法日志,最终将业务日志落地到相应的服务器上。2.2.42.2.4 采集的难点与挑战采集的难点与挑战 2.2.4.12.2.4.1 业务特性业务特性 在数据采集

31、过程中遇到的一个难点就是业务特性信息的收集,不同的业务场景需要收集不同的信息,但又不能每个业务场景都进行特殊开发,因此就需要设计一种日志数据采集解决方案,可以针对特定的业务场景,制定通用的数据采集标识,研发人员在进行页面埋点时,依据标准的数据采集标识规则进行埋点,从而收集业务的详细信息。例如电商行业中有商品详情页、搜索页、店铺页、下单页等特殊分类页面,而这些页面则需要分别采集具体的商品编号、搜索的关键字、店铺编号、订单对应的编号信息。该部分信息需要多方达成一致,确保产品、埋点研发、模型开发人员、数据分析人员对其有着相同的认识,以保证采集到的数据可以正常的解析处理,供分析人员进行数据统计分析,利

32、用数据采集标识即可做到这一点。2.2.4.22.2.4.2 全域用户标识全域用户标识 目前京东存在的入口很多,包括 PC 端的网站,移动端的网页,移动应用,包括微信手 Q,微信小程序等,同时京东还有很多的垂直业务,例如京东金融,京东全球购等等,而用户在不同的入口都有着不同的标识方式,而如果用户在未登录的情况下,京东大数据技术白皮书 22 如何将用户在全域下识别成同一个用户成为了一个重要课题。京东依据各入口的用户标识方式,结合用户之前的使用记录,用户偏好等等信息,再结合自用的算法逻辑,将全域的信息进行打通,形成全域的用户唯一标识。通过全域的用户唯一标识,我们就可以知道一个用户在不同网站,不同设备

33、上的访问习惯,方便营销人员对用户进行更精准的营销活动。2.32.3 数据存储数据存储体系体系 2.3.12.3.1 HDFSHDFS 存储存储 JDHDFS 是京东基于 HDFS 自研的大数据分布式存储平台,采用分布式存储技术,满足大数据高效可靠的存储需求,提供较高的持久性、较高的吞吐量和较低的延迟速度,具备高可用性和高可靠性的特点,容易扩展,并支持水平扩展至百 PB 级存储容量,同时拥有较高的硬件故障容忍能力,提供全面的安全性和多样化的权限功能。相对于开源版本的 HDFS,JDHDFS 主要改进的技术点如下:(1)基于路由的 Federation 方案(Router-Based Federa

34、tion)随着集群规模的增长,Namenode 存储成为集群性能的关键瓶颈。我们参考社区版本设计文档,研发功能模块 RBF(Router-Based Federation 基于路由的 Federation 方案),支持动态映射、嵌套映射等功能,可以解决 hadoop 集群无限横向扩展的规模问京东大数据技术白皮书 23 题。(2)数据生命周期管理(Data Lifecycle Management)组件 基于数据生命周期管理的策略,该组件定期调度进行过期Job 日志聚合目录 app-logs、中间结果文件、Cgroups 文件的清理以及固定周期小文件的整理合并。(3)基于资源利用率的智能选块 改

35、进后的 Namenode 节点可以实时感知集群所有 Datanode的繁忙状态,根据 CPU、内存、磁盘、网络的繁忙程度进行副本的位置选择,规避繁忙状态的 Datanode 节点,可以对整个集群的负载实时平衡。(4)跨集群容灾 集群往往不在同一个数据中心,甚至是跨地域的。集群间网络延迟较高,交换数据成本昂贵。原有执行同步的方式会造成数据延迟。我们基于集群数据同步方式代替 distcp,同时做到数据低延迟访问,支持双主访问,降低额外物理资源冗余。京东分布式存储采用将元数据集群与数据集群分离并可实现独立扩展,用户既可以通过扩展元数据集群获得更多文件管理的能力,又可通过扩展数据存储集群获得更大的聚合

36、带宽与存储容量。灵活、无缝、平滑的扩展方式可以为用户高效的计算环境提供坚实的数据保障。图 5 展示 JDHDFS 的技术架构。京东大数据技术白皮书 24 图 5:JDHDFS 技术架构 数据高可靠和平台高可用 平台可用性是最重要的指标之一,需要保证在机器发生故障时,系统可用性不受影响。我们使用多副本策略,副本分布在不同的机器,机器故障引起某些副本失效时,其它副本仍然能提供服务。平台允许对虚拟存储池中不同的目录设置不同的副本数,可手动设置 1-4 个文件副本,可保证数据在多块磁盘甚至单台服务器损坏的情况下存储系统的服务正常运转。为了保证任何一台存储服务器失效或者是任何一块硬盘失效都不会影响数据的

37、可靠性和一致性,使用 pipeline 机制保证数据写入顺序,所有的数据副本以及数据校验有严格写入顺序,如京东大数据技术白皮书 25 图 6 所示。当正在进行数据写入的磁盘和存储服务器发生故障时,元数据服务器会为此数据对象分配新的空间,以继续进行数据写入,而之前在失效磁盘上写入的数据则会通过另一份数据副本恢复到相应的磁盘和存储服务器上。图 6:JDHDFS 存储架构图 集群水平扩展能力 存储平台中的元数据服务器和存储节点是拥有横向水平扩展能力。存储节点扩展是存储节点数量的扩展,存储节点扩展带来容量上的增长。扩展过程中无需中断存储系统上应用的运行,扩展的容量即插即用。而且随着存储服务器数量的增多

38、,整套存储平台的流量也会线性增长,成为核心存储集群之一。元数据服务器的扩展带来的是文件数量存储能力的增长。如图 7 所示,整个扩展过程对整个应用平台完全透明,扩展的元数据服务器即刻能够提供服务,前端应用无需进行任何配置。随着元数据服务器数量的增多,整套集群存储系统所提供的元数据服务能力也会呈线性增长,能够管理的文件总个数也线性增加。京东大数据技术白皮书 26 图 7:元数据服务器 2.3.22.3.2 HBaseHBase 存储存储 JDHBase 是一个分布式存储系统,具有高效的实时读写性能。可以支持每秒千万级数据记录写入和毫秒级的查询响应,当数据量达到 PB 级别,仍然保持高性能读写。目前

39、京东 HBase 集群规模 5000 多台,支持京东 600 多个业务系统,典型业务有:商城:商品评价、会员 PLUS、个性推荐、用户画像、POP 订单、商家营销 智能:JIMI 机器人、AI 图片、图像识别、门禁刷脸 金融:风控、白条、支付、资管 物流:订单追踪、物流仓储、销量预测 监控:统一监控、服务器监控、容器监控、大数据监控、京东大数据技术白皮书 27 大屏监控 JDHBase 集群的服务端(如图 8 所示)是京东 HBase 的核心,它保障了 HBase 集群的性能和稳定,并提供了安全认证、主备切换、分组隔离、SQL 支持等重要功能。JDHBase 的客户端是京东 HBase 的重要

40、支撑,所有业务程序都使用标准客户端来访问 HBase 集群,实现了用户身份认证、主备切换、实时监控等功能。JDHBase 服务中心实现了各集群之间的统筹管理,通过它我们可以控制业务数据在多个集群中的流向形成数据流向拓扑,方便地进行数据的迁移。同时提供对业务端透明的主从、主主策略的动态变更。图 8:JDHBase 服务架构 京东 HBase 特点:(1)4+1 架构 针对京东的业务场景和使用方式,我们对 JDHBase 的使用京东大数据技术白皮书 28 方式做了很多思考与优化。如图 9 所示,我们将整个 JDHBase 平台逻辑拆分成存储层、内核层、中间件层、用户层和一个辅助系统。底层部署上我们

41、支持将 HDFS 和 HBase 分开部署,同时可以利用容器技术快速扩容和创建新的 HBase 集群。满足各种场景的读写需求。在 HBase 内核部分我们通过修改源码让 HBase RegionServer能够识别运行的硬件类型并根据其预设值自适应到最佳性能状态,支持多种硬件混合部署集群。在中间件部分我们通过接口服务的方式向外围系统提供支持,如主备容灾、数据治理服务、集群分组管理服务、权限管控服务、配额&限速管理服务,多语言支持组件等。在用户层我们向最终用户提供多种可选的数据加载方式和查询引擎满足不同业务场景和需求。京东大数据技术白皮书 29 图 9:JDHbase 技术架构(2)多活灾备 为

42、了满足业务对 JDHBase 读写的实时性要求和数据安全性的要求,我们自主研发了一套基于策略的多集群切换机制(图 10)。在集群拓扑上每个集群都会有备份集群来保证跨机房的数据备份。从安全维度上我们分别做到了集群级、namespace、表级的支持,可以针对每个级别设置不同的容灾切换策略,如手动、自动、强制等。通过这种方式我们可以随时调整策略将部分业务分批、分级切换,如隔离、降级、防雪崩等场景。多集群切换机制的主要工作组件由服务中心、HBase PolicyServer、客户端三部分构成:客户端会定期以心跳的方式访问 HBase PolicyServer 获取所操作对象的集群服务信息和切换策略信息

43、,当发现主集群信息改变之后客户端会根据切换策略进入切换流程。PolicyServer 是对外提供查询和修改策略的服务,它所有策略数据会存储在 MySQL 中,可以通过加节点的方式动态扩展形成一个服务集群,避免单点问题。ServiceCenter 提供一个界面化的多集群管理服务工具供管理员使用。在极端情况下,如果主集群彻底瘫痪,我们可以通过强制切换的方式把所有业务快速切换到从集群。同时触发主备数据同步校验机制,后台会自动在主集群状态恢复后将校验主从集群的数京东大数据技术白皮书 30 据一致性并同步数据,保证数据安全性。图 10:HBase 服务集群(3)多租户分组隔离 HBase 默认的使用方式

44、是一个业务一个集群,资源利用率低,维护成本高。也可以多个业务共用一个集群,但是会有资源竞争和故障扩散等问题。例如,一个业务出现异常可能会影响整个集群的可用性。基于以上的原因,我们引入了 HBase2.0 的 rs 分组功能(目前官方仍然是 beta 版)并进行了改进完善,实现了将 HBase 集群动态切分成多个分组,每个分组中有多台物理服务器(图 11)。这样既能将业务进行物理隔离防止资源竞争和故障扩散,还能在 618 和 11.11 大促时期动态调整集群资源,提升硬件资源利用率。京东大数据技术白皮书 31 图 11:Hbase 多租户隔离(4)SQL 查询 原生的 HBase 只提供 key

45、-value 查询和范围扫描。我们引入了开源的 phoenix 组件,并进行了安全认证、性能和稳定性提升等工作,可以支持标准 sql 查询,例如创建二级索引、多表 join查询、sql 子查询、聚合查询、创建分桶表、分页查询等功能,如图 12 所示。这使得 HBase 功能更加丰富,不仅支持实时查询,还能做实时统计分析,适应更复杂的应用场景。京东大数据技术白皮书 32 图 12:支持 SQL 查询 除以上外,我们还做了其他重要优化改进,如使用 G1 垃圾回收器提升JVM性能、支持在线不停机跨版本数据迁移等功能,将主备 replication 同步速度提升到分钟级别,archive 归档清理性能

46、提升 10%以上。随着容器技术的成熟,我们正在尝试 Hbase 的容器化部署,以便实现更好的资源隔离并提升资源使用率。由于承载的数据量越来越大,Hbase 提供的均衡策略已经不能满足业务需求,我们也在着手进行 balance 均衡策略的调整,并使用 Netty Rpc Client来改造 PRC 客户端性能,提升数据写入的速度。在集群硬件方面,我们部署了 SAS 和 SSD 磁盘混合方案,从目前的压测效果看比较好,将来会逐步上线。京东大数据技术白皮书 33 2.3.32.3.3 冷热数据冷热数据管理管理 随着数据量的不断增长积累,数据也会呈现出访问热度不同的明显差异。我们将数据访问频率高的数据

47、称为“热”数据,访问频率低的数据称为“冷”数据。如果无论数据冷热情况,都采用同样的存储策略,是对集群资源的一种浪费。因此,需要根据数据冷热程度对 HDFS 存储系统进行优化。京东大数据针对冷热数据设计了较完整的机制,主要包括:冷数据的规则配置冷数据的规则配置 管理员可配置冷数据的扫描范围,对不同集群、ns、用户可灵活配置不同的扫描路径,归档周期以及归档路径。同时为了配合业务使用,可以允许业务用户根据业务需要对部分数据设置白名单进行保护,避免被冷备份。冷数据的扫描和备份冷数据的扫描和备份 利用配置表对 HDFS 存储数据一次性进行正则匹配,获取想要的冷数据列表。被扫描出的冷数据被迁移到冷数据集群

48、,进行降副本操作和隔离操作,并释放原有集群的存储资源。冷数据的恢复和删除冷数据的恢复和删除 如有业务需要对冷数据进行恢复,可申请恢复冷数据。经过批复后数据将很快从冷集群恢复至正常环境。若冷集群归档后一定时间内无恢复申请,将删除冷数据并释放资源到大集群。冷数据的统计分析报告冷数据的统计分析报告 大数据平台同时提供从不同角度对冷数据归档信息进行统京东大数据技术白皮书 34 计分析并展示,更直观地反映冷数据当前的归档情况,方便用户查看。2.42.4 离线计算环境离线计算环境 大数据离线计算为多种应用场景提供基础计算功能,其特点为:数据量巨大且保存时间长;在大量数据上进行复杂的批量运算,能够方便地查询

49、批量计算的结果;数据在计算之前已经完全到位,不会发生变化。京东大数据支持 Hiv、Pig、Spark SQL、Presto、MapReduce 等计算工具,并支持 Alluxio 的存储架构,形成了离线计算引擎,如图 13 所示。图 13:离线计算架构 JDHive 计算引擎服务计算引擎服务 京东大数据技术白皮书 35 JDHive 是基于 HIVE 社区版本深度定制的大数据查询引擎,它是目前业内能够支撑 GB/TB/PB 级数据仓库的通用解决方案之一,支持将 sql 语句转换为 MapReduce 任务,能够快速处理海量数据计算,有效降低分布式计算模型的使用成本。JDHive 为用户提供基于

50、社区版的所有功能,同时进一步推出一系列高级特性解决不同业务场景的需求,包括:元数据管理、审计日志管理、读写 IO 管理、UDF 统一管理等功能。针对服务性能优化,我们坚持不断试错,不断优化,不断打磨的原则,持续推动着 JDHive 的进化。如今京东大数据百分八十的业务都在使用 JDHive 提供的服务支持。JDSpark 计算引擎服务计算引擎服务 JDSpark 是京东大数据平台对外开放的核心计算引擎之一,旨在为高性能、迭代计算、时效性要求极高的场景服务,同时针对部分具有研发能力较高的深度用户提供 SDK 开发功能。随着京东业务的飞速增长,很多业务场景已经无法接受基于磁盘批处理的MapRedu

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服