当前位置: 首页 > 科技观察

如何高效存储、管理和应用大数据?

时间:2023-03-14 20:31:21 科技观察

如何管理海量数据是很多企业需要解决的问题。要高效管理数据,充分发挥数据信息的价值,前提是要有效存储大数据。京东大数据存储跨域分层实践下图为京东数据平台架构图。京东数据平台整体架构主要由六部分组成,其中数据存储作为计算存储层的底层组件,支撑上游计算引擎调度,以及更高层的工具层、服务层和应用层。在整个数据平台架构中,底层数据存储扮演着基础设施的角色,是整个大数据平台的基础。一、跨域存储面临的问题及解决方案在应用跨域存储架构之前,跨机房的数据同步主要是通过业务方在不同机房之间进行Distcp来实现的。这种方式会有一些隐患:第一个问题:元数据的一致性由业务方保证,数据迁移需要业务介入,成本高,时间长。第二个问题:跨机房的流量不受控制,影响同步任务,需要借助外部调度系统和存储。第三个问题:产生多份冗余数据,数据共享和同步成本高。比如在不同机房的不同数据节点之间加载相同数据的多份副本,造成冗余。第四个问题:没有多机房集群的容灾系统,没有充分发挥多机房的优势。(1)跨存储架构基于以上,京东大数据平台在底层存储模块设计了跨域数据同步功能,解决历史数据存储同步带来的问题。选择在底层解决这个问题,不仅可以控制跨域数据的一致性,还可以提供对业务不敏感的跨域数据同步和共享功能,减少业务端的重复劳动,使存储系统能够具有跨域迁移和跨域能力。灾难的能力。京东跨域存储架构的主要思路是通过“全存储+全网拓扑”实现跨机房故障域,最终实现大数据关键数据的异地容灾和跨机房存储能力.(2)跨域存储——跨域数据流在实现跨域存储的过程中,采用了两种数据流方式:异步数据流先将数据写入本地机房,然后自动进行跨域同步通过名称节点(NN)。这种数据传输方式的写入性能与现有的非跨域场景一致,同步延迟优于distcp方案。同步数据流建立pipeline数据流水线,串联机房内所有datanode(DN),一次性同步数据。这种传输方式针对的是对数据一致性和可靠性要求高的业务。(3)跨域存储——拓扑与机房感知拓扑与机房感知是解决跨域存储“节点定位”核心问题的关键模块。基于该模块,可以控制数据块分布和客户端流量。该模块主要从两个方面解决问题:拓扑管理通过对节点拓扑进行改造,在拓扑管理中增加机房维度。同时,块选择逻辑必须基于整个网络的拓扑模块进行适配,以兼容多个机房。机房感知对于跨域版本的客户端,可以在RPC头中携带机房信息进行识别和检索;对于不支持跨域版本的客户端,可以使用京东网络服务团队提供的ip映射到机房服务,实现机房对应客户端的检索查询。(4)跨域存储——跨域识别跨域识别模块是解决“数据跨机房存储”问题的关键设计。我们使用支持副本和EC的属性标签来描述数据的跨域属性。EC包括两种类型的数据块和校验块。与复制模式相比,它对跨域同步的支持更加复杂。需要支持同机房数据重构,不满足重构条件时的跨域数据拷贝,减少跨域场景下EC数据的跨域同步流量。为了加速整体的跨域数据处理,采用了三种方法:在XATTR上固化元数据,在内存上构建InodeProto,在每个数据块上创建块属性标识(5)跨域存储——跨域Patching和流量控制对于跨域打补丁和流量控制,采用三种方式来保证性能:在处理跨域打补丁时,遵循的原则是跨域处理与原进程隔离,保证新的跨域处理进程不影响原有的同机房块补丁处理,在机房网络中断等极端情况下,可以保证单个机房元数据服务的可用性。新增异步跨域更新器,结合跨域标签属性,实现HA切换和打补丁,解决存量数据问题。使用CR-Checker程序替换原有的DistCopy任务,可以将原有的跨集群同步任务平滑升级为跨域同步任务,最大限度降低跨域架构升级对原有存量任务的影响。2、分层存储面临的问题及解决方案京东的数据分层存储是为了解决原有框架存在的问题,主要是:数据冷热不区分的问题,不同硬件类型不区分的问题,以及数据治理工作难推进。(1)分层存储架构京东的分层存储架构,整个框架主要在NN内部实现:分层策略配置:提供对外API传递和内部配置。分层配置API:提供分层策略下发接口,分层逻辑可通过离线数据分析和业务侧对外交付。内置分层策略:可配置和动态刷新的分层策略。默认情况下,LRU分层策略配置是通过访问监视器统计信息来执行的。标签管理器:实现目录标签和节点标签管理,引导区块选择模块、分布验证器等模块进行数据迁移。数据分布验证器:实现对新增数据的分布验证,引导数据根据标签进行分布。存量数据满足器:存量数据扫描校验,引导存量数据块迁移;实现数据生命周期管理功能。(2)分层存储——核心设计分层存储的核心设计分为两个模块,一是基于目录树的元数据标签管理,数据的冷热数据分配;另一种是节点拓扑树,使用一棵虚拟的多拓扑树从逻辑上区分不同标签的节点。不同的标签类型都会有自己独立的拓扑树,以达到更高效的节点选择性能。虚拟拓扑树的更新有两种方式,一种是基于节点权重的异步更新,一种是在线和离线数据的同步更新。增量数据和存量数据在处理流程上有以下区别:增量数据:对于写请求,先确定label,然后根据匹配的对应节点写入数据。已有数据:后台数据分布校验会扫描数据标签,根据虚拟拓扑树匹配相应节点,完成数据迁移或转换。以上内容节选自《京东大数据存储跨域及分层实践》,作者吴薇薇老师。