计算不停歇,百度沧海数据湖存储加速方案 2.0 设计和实践

数据湖这个概念,从 2012 年产生到现在已经有十余年的时间,每家公司对它内涵的解读都不太一样。但是数据湖的主要存储底座有从传统的 HDFS 向对象存储演进的趋势。

传统的大数据计算场景,比如 MapReduce、Spark、Hive 这些大数据组件都是基于 HDFS 构建的。但是,它有如下几点不足:

  • 第一个是资源问题。由于 HDFS 计算资源和存储资源混布在一起,只有计算和存储资源匹配,才不会出现资源的浪费。这对业务发展趋势的规划能力要求是非常高的,实际业务中很难预测 3 年、5 年之后的计算和存储的规模变化,如果出现不匹配,会出现某种资源的浪费。

  • 第二个是规模问题,单个 HDFS 集群的 Namenode 最高支持 10 亿量级的规模的文件数,现在大模型训练文件数最高会超过百亿,甚至千亿的文件规模, HDFS 集群很难满足,虽然有一些改进方案,如集群的 Federation 可以使支持的规模变得大一些,实际上会牺牲很多特性,带来使用上的不便。

  • 第三个运维问题。HDFS 运维负担比较重,需要有丰富的 HDFS 运维经验的工程师才能解决数百 PB 规模集群的可靠性、可用性问题。

对象存储的出现可以很好的解决 HDFS 存在的问题:

  • 对象存储作为存储组件是存算分离的架构,计算和存储可以独立扩容,具有更大的弹性。

  • 对象存储扩展性要好,支持的规模更大,并具有云原生的无运维负担、多级存储体系成本低等特点。

图片

对象存储作为数据湖存储底座能完美的代替 HDFS 吗?

这里还是有诸多挑战需要解决:

第一个挑战是性能问题。存算分离有弹性的优势,但是性能有下降。在元数据维度,HDFS Client 访问 HDFS Namenode,一次元数据操作只需要几百微秒。而对象存储要经过鉴权、协议转换再加上由于计算节点和存储节点延迟变高的原因,延迟会有增加。在数据面维度,由于要经过网关节点、对象存储前端、以及对象存储后端,相比于 HDFS,数据吞吐会有很大的衰减。

第二个挑战是 HDFS 上游计算生态的兼容性问题。上游的大数据组件 MR、Spark、Hive 这些都是基于 HDFS 构建的,对象存储在访问协议、鉴权方式存在非常大的差异。如何屏蔽这些差异,对上游业务无感实现平滑切换,这也是一个非常棘手的问题。

图片

为了更好的加速上层大数据、AI 计算业务,发挥存储底座的基础支撑作用,百度沧海在数据湖存储加速方案 1.0 的基础上,发布了数据湖存储加速 2.0 版本,在新版本中:

  • 升级了层级 Namespace 2.0 版本,实现了基于规模的自适应存储架构,达到了规模和性能的有效平衡。

  • 在对象存储后端升级了对大数据更加友好的流式存储引擎。相比于 HDFS,单流吞吐提升 70% 以上。

  • 在计算侧缓存我们发布了 RapidFS 托管型产品,能够更高效的实现数据缓存和写入加速。

  • 同时,发布了 BOS-HDFS 全新版本,实现了对 HDFS API 100% 兼容,能够实现上层业务无缝对接和迁移。

下面分别展开介绍一下各个方面的内容。

图片

先看一下 Namespace 的演进路线。

对象存储有两套 Namespace 体系,一个是平坦 Namespace,另外一个是层级 Namespace。平坦 Namespace 对大数据计算来说有 rename 原子性和性能问题,省去不谈,这里重点讲一下层级 Namespace 的演进。

  • 第一代的层级 Namespace 方案,是单机的方案,最典型的代表是 HDFS 的目录树全内存方案,这种方案性能高,但是扩展性差,只能在 10 亿的量级。有的系统把目录树全内存扩展到了 SSD,部分热数据放内存或者一些系统做了静态子树划分的扩展方案,支持的规模有一定的增加,但是扩展的不多。

  • 第二代的层级 Namespace 基于分布式数据库构建,典型的代表是 Facebook 的 Tectonic 系统,优点是线性扩展,支持的规模大,缺点在创建文件、rename 时候会触发多次 RPC 和两阶段提交,延迟相当于单机方案会比较高。

  • 百度提出的第三代层级 Namespace 系统是「单机/分布式一体化方案」,能够做到规模自适应。在规模小的时候具备单机 Namespace 系统的性能优势,百微秒级延迟。在规模扩大到必须采用分布式方案的时候,能够无感平滑迁移到分布式架构,满足规模的水平扩展,适应各个阶段的要求。

图片

单机和分布式架构能够做到合二为一的最核心的一个点是在规模达到临界点的时候,后端架构如何做到平滑切换。

我们是这样做的,无论是单机架构和分布式架构,我们都基于我们自研的分布式数据库去构建,也就是百度沧海的元数据底座 TafDB。

在单机架构下,我们强制层级Namespace依赖的Inode信息和目录树信息绑定分配到同一组存储节点。这个时候,不需要跨机事务和多次 RPC 就可以完成文件创建、目录 rename 等元数据操作,这时候跟单机架构的延迟一致。

当桶的文件规模达到 10 亿量级的临界点之后,会触发分布式数据库按不同的表边界分裂。分布式数据库的分裂操作对上层业务无感,Inode 表动态水平扩展,这个时候单机事务转换为跨节点事务,单次 RPC 转换为多次 RPC,上层 Lib 库对这两种接口进行了很好的的封装,上层 API 一致。

这样单机架构就可以平滑的过渡到分布式架了,分布式架构的性能相对于单机架构有一些衰减,单次操作到毫秒级延迟,但是规模可以支撑到百亿到千亿的规模。

在单机架构下还有一个问题待解决,就是如何提升系统的吞吐。我们的做法是把文件语义操作下推到分布式数据库层,直接使用数据库的内置语义完成操作,减少跟上层组件的通讯次数,单桶支持到十万 TPS。

图片

在对象存储后端数据面的引擎优化方面,我们针对大数据和 AI 场景进行了优化升级。

原来的存储引擎专门针对小文件设计,数据按 Blob 切块之后,数据块随机放到整个集群的磁盘上,这样可以充分分散压力,利用数十万块磁盘的 I/O 能力。

大数据计算有文件大、顺序读的特点。针对这个特点,我们升级了存储引擎,整个文件切成更大的 Block,Block 内部顺序放置。

这样既不会出现热点,又可以充分发挥 HDD 顺序访问高吞吐的优势,一次性预读更多的数据,单流吞吐可以达到 300MB/s,相比于原生 HDFS 单流的带宽提升 70% 以上。

图片

在近计算侧的缓存加速方面,我们发布了 RapidFS 托管型产品,端到端加速大数据和 AI 应用。

对于随机读密集型的计算场景,I/O size 很小,对象存储性能较差,这时候把大块数据缓存到 RapidFS,可以更好的发挥出优势,性能提升 3 倍以上。

在多模态训练场景,通过智能预热到 RapidFS 做训练加速,使得 GPU 使用率提升 98% 以上。

在推理集群模型文件分发场景,RapidFS 支持复制出更多的副本数来分摊读压力,使得千卡推理集群的模型部署在分钟级完成。

对于大模型训练 Checkpoint 持久化场景,数据先写入 RapidFS 的分布式缓存,再异步写到后端的对象存储集群,Checkpoint 持久化耗时缩短了 4/5。

数据湖存储加速 RapidFS 在专属云、边缘云、公有云都提供了一体化的架构,业务可以实现零改造成本统一接入。

图片

在 Hadoop 生态兼容方面,我们发布了 BOS-HDFS 全新版本,对上层 Hadoop 应用提供 100% 的兼容,无需修改代码就可以运行原有的大数据和 AI 任务,实现零改造迁移上云。

BOS-HDFS 提供了原子 rename、Vectored I/O、文件 append/truncate 等 Posix 文件语义接口。

BOS-HDFS 兼容所有主流计算引擎,并且在这个基础上,提供了额外的智能数据分层、子目录 Quota、日志审计、服务端加密等更丰富的功能。

在认证鉴权方面提供了 Kerboeros + Ranger 到临时 token 鉴权体系的无缝转换方案。

图片

这张图是百度沧海支持大模型场景的全景图。

对象存储 BOS 作为基础的数据存储底座,数据湖存储加速 RapidFS、文件存储 CFS、并行文件存储 PFS 作为加速层,在数据处理、模型开发、模型训练、模型推理各个环节,我们都提供了完善的端到端解决方案。

图片

下面介绍下典型应用案例。

客户 H 是国内垂直赛道的头部客户,在百度智能云上构建自己的 AI 应用。

  • 在数据预处理阶段,使用对象存储 BOS 作为数据湖存储底座处理待训练的数据,相比于自建的 HDFS 模式,成本下降了60%。

  • 在模型训练阶段,使用 PFS + BOS 的加速方案。热数据按需加载到 PFS,冷数据存放到 BOS。

  • 在模型推理阶段,使用 RapidFS 做模型分发的加速。相比于之前的方案,模型分发的端到端延迟缩短了 50% 以上。

图片

————END————

推荐阅读

AI 原生时代,更要上云:百度智能云云原生创新实践

百度智能云千帆 AppBuilder 大模型应用开发解读

PaddleNLP上新!浪潮信息源2.0全面接入,大模型生态加速进化!

百度利用 DATAPILOT 及 NVIDIA RAPIDS Accelerator 实现数据分析变革

ClickHouse在百度MEG数据中台的落地和优化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466604.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)

1 编制目的 2 系统运行维护 2.1 系统运维内容 2.2 日常运行维护方案 2.2.1 日常巡检 2.2.2 状态监控 2.2.3 系统优化 2.2.4 软件系统问题处理及升级 2.2.5 系统数据库管理维护 2.2.6 灾难恢复 2.3 应急运行维护方案 2.3.1 启动应急流程 2.3.2 成立应急小组 2.3.3 应急处理过程 …

【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0

目录 一、相关面试题 1. HTTP 与 HTTPS 有哪些区别? 2. HTTPS 的工作原理?(https 是怎么建立连接的) (1)ClientHello (2)SeverHello (3)客户端回应 &a…

使用文心快码生成口算题,妈妈再也不用担心我的学习了

2024年10月NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。百度文心快码总经理臧志分享了《AI原生研发新范式的实践与思考》,探讨了大模型赋能下的研发变革及如何在公司和行业中落地,AI原生研发新范式的内涵和推动经验。 …

C#笔记 —— 事件

事件的语法 访问修饰符 event 委托类型 事件名; 例: public event Action myEvent; 事件的使用 事件的使用跟委托基本上一模一样, 1.但是事件不能在类外部直接赋值,只能使用 或 - 添加或删除函数; 2.事件不能在类…

JavaScript3*3表格实现每次点击只红一行

<script> window.onload function () { var myTd document.getElementsByTagName("td"); var currentlyHighlightedRow null; // 用于存储当前高亮显示的行 for (var i 0; i < myTd.length; i) { myTd[i].onclick function () { …

物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?

SMIC家工艺的数字后端实现PR chipfinish写出来的带PG netlist如下图所示。我们可以看到标准单元没有VNW和VPW pin的逻辑连接关系。 前几天小编在社区星球上分享了T12nm ananke_core CPU低功耗设计项目的Calibre LVS案例&#xff0c;就是关于标准单元VPP和VBB的连接问题。 目前…

基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解

摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定船舶监造系统的总体功能模块。然后&#xff0c;详…

线性表之链表详解

欢迎来到我的&#xff1a;世界 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言线性表的概述链表的概述 内容链表的结构链表节点的定义 链表的基本功能单向链表的初始化链表的插入操作头插操作尾插操作 链表的删除操作头…

Vue2 doc、excel、pdf、ppt、txt、图片以及视频等在线预览

Vue2 doc、excel、pdf、ppt、txt、图片等在线预览 安装使用目录结构直接上代码src\components\FileView\doc\index.vuesrc\components\FileView\excel\index.vuesrc\components\FileView\img\index.vuesrc\components\FileView\pdf\index.vuesrc\components\FileView\ppt\index…

全星魅-物联网定位终端-北斗定位便携终端-北斗有源终端

在当今快速发展的物流运输行业中&#xff0c;精准定位与实时监控已成为确保货物安全与高效运输的关键因素。为了满足这一需求&#xff0c;QMCZ10作为一款集4G&#xff08;LTE Cat1&#xff09;通讯技术与智能定位功能于一体的终端产品&#xff0c;应运而生。它不仅具备普通定位…

交换机属性-持久化和自动删除等

交换机属性-持久化和自动删除 1、交换机属性2、交换机(Exchange)的持久化属性2.1、RabbitConfig配置类&#xff08;关键代码&#xff09;2.2、发送消息2.3、启动类2.4、application.yml配置文件2.5、pom.xml配置文件2.6、测试 3、交换机(Exchange)的自动删除属性3.1、RabbitCon…

基于Prometheus的client_golang库实现应用的自定义可观测监控

文章目录 1. 安装client_golang库2. 编写可观测监控代码3. 运行效果4. jar、graalvm、golang编译运行版本对比 前文使用javagraalvm实现原生应用可观测监控&#xff1a; prometheus client_java实现进程的CPU、内存、IO、流量的可观测&#xff0c;但是部分java依赖包使用了复杂…

Unity3D UI 拖拽

Unity3D 实现 UI 元素拖拽功能。 UI 拖拽 通常画布上的 UI 元素都是固定位置的&#xff0c;我们可以通过实现拖拽接口&#xff0c;让 UI 元素可以被拖拽到其他位置。 拖拽接口 创建一个脚本 UIDrag.cs&#xff0c;在默认继承的 MonoBehaviour 后面&#xff0c;再继承三个接…

《重学Java设计模式》之 工厂方法模式

《重学Java设计模式》之 建造者模式 《重学Java设计模式》之 原型模式 《重学Java设计模式》之 单例模式 模拟发奖多种商品 工程结构 奖品发放接口 package com.yys.mes.design.factory.store;public interface ICommodity {/*** Author Sherry* Date 14:20 2024/11/6**/voi…

【Python爬虫实战】DrissionPage 与 ChromiumPage:高效网页自动化与数据抓取的双利器

&#x1f308;个人主页&#xff1a;易辰君-CSDN博客 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、DrissionPage简介 &#xff08;一&#xff09;特点 &#xff08;二&#xff09;安装 &#xff08;三…

Word大珩助手:超大数字怎么读?35位数字?69位数字?

俄罗斯日前对谷歌开出了20000000000000000000000000000000000&#xff08;35位数字&#xff09;美元的罚款 这一数字远超全球GDP总和&#xff0c;消息一出很快就登上热搜。 面对这样一个庞大的数字&#xff0c;人们不禁好奇&#xff0c;这样的数字该如何读出来&#xff1f; …

Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized

这里是Themberfue 在上一节的最后&#xff0c;我们讨论两个线程同时对一个变量累加所产生的现象 在这一节中&#xff0c;我们将更加详细地解释这个现象背后发生的原因以及该如何解决这样类似的现象 线程安全问题 public class Demo15 {private static int count 0;public …

17、论文阅读:VMamba:视觉状态空间模型

前言 设计计算效率高的网络架构在计算机视觉领域仍然是一个持续的需求。在本文中&#xff0c;我们将一种状态空间语言模型 Mamba 移植到 VMamba 中&#xff0c;构建出一个具有线性时间复杂度的视觉主干网络。VMamba 的核心是一组视觉状态空间 (VSS) 块&#xff0c;搭配 2D 选择…

JavaAPI(1)

Java的API&#xff08;1&#xff09; 一、Math的API 是一个帮助我们进行数学计算的工具类私有化构造方法&#xff0c;所有的方法都是静态的&#xff08;可以直接通过类名.调用&#xff09; 平方根&#xff1a;Math.sqrt()立方根&#xff1a;Math.cbrt() 示例&#xff1a; p…

【362】基于springboot的在线租房和招聘平台

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统在线租房和招聘平台信息管理难度大&#xff0c;容错率低&…