其他
京东统一存储实践
导读 随着大数据时代的到来,海量数据的存储与处理成为了众多企业面临的重要挑战。HDFS 作为一个高可靠性、高扩展性的分布式文件系统,在京东零售的数据管理中扮演着重要角色。本文将分享京东在 HDFS 统一存储方面的实践经验,并对相关的技术细节进行总结。
文章将围绕以下几点展开:1. 概况简介
2. 跨域存储
3. 分层存储
分享嘉宾|王腾蛟 京东零售 数据开发工程师
编辑整理|原琦
内容校对|李瑶
出品社区|DataFun
01
概况简介
02
跨域存储
1. 存在的问题
2. 存储架构
3. 拓扑与数据存储
4. 跨域数据流
5. 跨域补块
6. 异步更新器
7. 跨域流控
03
分层存储
1. 存储对比
存储最频繁访问的数据,性能最高。 数据读取速度最快,因为避免了网络传输的开销。
存储在内存中,但访问数据需要通过网络。 相比本地缓存,性能略有下降,但仍远高于磁盘存储。
通常用于持久化存储,涉及到磁盘 I/O,因此性能较低。 适用于不频繁访问的数据或需要持久化保证的数据。
由于磁盘类型有限,不支持过多层次的定义。 存储节点类型的变更可能需要重启服务才能生效。 若涉及到磁盘类型新增,可能需要修改存储节点代码,并进行滚动升级,这对大型集群是一个复杂的过程。 冷热数据之间的状态转换不够灵活。
2. 京东分层存储
热数据:存储在性能较高的 SSD 盘上,以提供快速的数据访问速度。 温数据:存储在性能适中的 HDD 盘上。 冷数据:存储在高密度 HDD 盘上。
热数据转换为温数据:通过内部的数据搬移机制实现节点替换。 温数据转换为热数据:同样依靠数据搬移机制进行节点替换。 冷数据处理:利用时间生存期(TTL)功能,当数据存储到冷数据节点时,会进行副本转换为纠删码(Erasure Coding, EC)的过程,以优化存储效率和耐久性。
读写权重:决定节点在读写操作中的优先级。 存储使用量:反映节点的存储空间占用情况。 节点健康度:指示节点的健康状况。
数据访问监视器: 该监视器默认采用最近最少使用(LRU)算法统计文件目录的访问情况,筛选出热点数据。 提供 API 支持,允许变更已实现的其他策略。 分层管理模块: 主要功能是扫描已标记分层标签的目录,结合访问监视器提供的热点数据信息。 对这些目录处理,创建数据转换任务,并提交到任务管理模块。 任务管理模块: 京东在元数据节点内部实现了一个分布式调度平台,包含多种功能,如数据节点变更、数据类型转换和数据生命周期管理等。 该模块复用社区原有的任务下发机制,例如在数据节点(DN)心跳时,从元数据节点获取数据块删除、复制或恢复任务。 模块扩展了任务类型,具体任务的处理则在存储节点上实现。
3. 实践结合
社区版本中的跨地方存储可能会造成数据的过度冗余,提高存储成本。京东的跨域存储方案也面临类似问题,但冗余度有所降低。 某些数据在平台上写入后很久不会被读取,可以根据文件创建时间和跨域标签对数据进行流动处理。从多机房数据转换为单机房数据,并引入分层存储功能,将单机房数据通过EC 转换为高密存储,从而将数据冗余度降低。这种策略大幅度降低了数据的冗余度,并将数据从性能较好的机器转移到了适合冷存储的机器上。
可以理解为反生命周期过程,即通过访问监视器统计结果进行数据反向加热。数据加热后,结合跨域标签进行多机房分布,提升数据读取效率。 任务漂移的支持。根据计算资源的动态分配,将任务分配到资源较多的集群执行,优化线上任务的时效性。多机房之间的计算资源可能在不同时间段不一样,任务漂移功能能够智能地分配任务,确保数据就近处理,进一步提升任务处理的效率。
分享嘉宾
INTRODUCTION
王腾蛟
京东零售
数据开发工程师
毕业于郑州大学,2021 年 8 月加入京东,目前主要负责京东离线存储(HDFS)相关工作。
往期推荐
火花思维:从 0 到 1 构建一站式数据开发治理平台
实验设计精进:重随机与回归调整在AA问题中的应用
基于LLM的因果关系实验
NoETL,开启自动化数据管理新时代
案例分享|Alluxio在自动驾驶模型训练中的应用与部署
多模态预训练模型在 OPPO 端云场景的落地实践
腾讯大数据多引擎统一元数据和权限管理的探索
指标体系与标签体系的区别与联系
第三代指标平台如何摆脱 ETL 宽表开发 做“轻”数仓
点个在看你最好看
SPRING HAS ARRIVED