大数据 频道

【TOP100summit】王哲涵:京东大数据离线架构选型实践分享

  摘要:11月30日至12月3日,第七届全球软件案例研究峰会(简称TOP100summit)在北京举行,来自京东的离线平台研发团队负责人王哲涵带来了精彩分享。

  五年时间,京东大数据平台从无到有,从量到质,从微创到革新,集群规模一步步从数百向数万演进。在这个过程中,京东也曾从通过服务器协作代替单体硬件升级获取性能提升的方式中受益。但是,面对多元化的业务发展和不断扩大的集群规模,京东站在了进化的岔路口,如何保证任务SLA稳定完成?如何突破规模增长与性能下降的魔咒?如何保证集群每日上线并实现故障隔离?京东大数据离线架构平台的升级打怪之路开启......

  京东离线平台研发团队负责人王哲涵

  如果按规模划分,京东大数据平台演进的几个重要节点分别是单集群规模达到1200台、3000台、5000台再到2018年的8000台。在这个过程,京东大数据团队优化了Yarn的调度性能,集群稳定性,计算资源分配并逐步完成存储和计算分离等工作。

  在平台搭建上,中小企业在不具备专业研发团队的情况下,选择云提供商和开源社区的可能性更大,短期来看这会节省大量成本。但是,当集群增长到一定规模,使用云平台的成本就会相应升高。京东离线平台研发团队负责人王哲涵提及,京东的离线大数据平台全部在本地实现,使用了不少开源组件也加入了新技术,但京东更加倾向于自我实现而非拿来主义。

  所谓拿来主义,更多时候是指借用开源产品和社区的力量,但京东在代码修改上下了很大功夫,毕竟一些很小的改动可能为京东节省大量成本。对于组件选用,京东同样选择了Flink,Spark、Storm、Yarn、HDFS和HBase等常用组件,但是京东在代码层面进行了很多改动。以Yarn为例,Yarn在集群规模达到某个范围后,其性能是有问题的,京东对该问题进行了修复并持续弥补了其与K8S的差距。

  虽然自研往往更容易达到想要的结果,但这一点并不适用于所有体量的公司。对于中小企业而言,一段代码优化带来的成本节省或许比消耗的人力成本更高,同时,中小企业也很难聚拢一批可修改源码级别的研发工程师,而这些在大公司眼中又不是问题了。毕竟,大公司聚集了中国绝大部分的优质研发人才,其一点小改动都可能带来巨大的性能提升或成本降低。

  对于易用性、性能和成本之间的平衡,王哲涵认为稳定性是首要考量目标,其次是性能。如果稳定性时好时差,那么性能也无从谈起。就稳定性而言,京东解决了数据热点、硬件故障、基础设施故障和异常任务等常见问题;就性能而言,京东做了多区域智能调度、存储计算分离、跨机房容灾-多活架构等。

  目前,京东的Yarn单集群规模已经达到了1万2,存储是1万,逻辑集群是1万6。未来,京东将在存储、 调度、物理资源调度 、跨机房容灾等多个维度进行改进。第一阶段促进计算、调度和存储的独立进化,降低各层之间的耦合性,各层具备独立对外服务而不依赖其它层级的能力;第二阶段建立于各层独立服务的基础上,构建统一“大脑”指挥协调各层系统发挥“1+1=10”的效果,发布目标让各层组件为目标协同作战;第三阶段消除“客户端”模式,增加“服务层”与“资源池”的概念,对外建立统一的API服务列表,让用户与集群资源完全分离,同时对用户使用资源进行透明化、自助化。

0
相关文章