随着网络性能提升,云端计算架构逐步向存算分离转变,AWS Aurora 率先在数据库领域实现了这个转变,大数据计算领域也迅速朝此方向演化。

存算分离在云端有明显优势,不但可以充分发挥弹性计算的灵活,同时集中的托管存储可以提供更大的容量和更低的成本,避免了云端大量自建存储集群的维护代价。

一、问题和挑战

对象存储是广泛使用的云端非结构化数据存储解决方案,越来越多的非结构化数据聚集于对象存储的数据湖中,随之而来的是对这些海量数据的分析需求。

然而对大数据分析的存储系统来说,HDFS 接口是事实标准,HDFS 是大数据生态的存储基石。

原生的对象存储接口不兼容 HDFS,无法直接使用。为支持计算存储分离的大数据场景,对象存储通常提供了一个模拟层,实现 HDFS 语义到对象存储语义的转换,典型实现类似 s3n 和 cosn。然而这类实现缺乏对真正的文件系统接口的支持,基于对象存储的扁平目录结构无法实现分层命名空间,在处理类似 rename 等操作时效率极低(实际是基于前缀复制关联的所有对象),对于 list、head 等频繁元数据操作的场景延迟较高,一些对象存储系统还缺少强一致性语义,不能保证写后读一致性,导致上层的大数据计算框架出错。

同时在数据流方面,诸如常见的文件 append 操作,s3n 和 cosn 等对象存储的模拟层也无法支持。

为支持大数据存算分离场景,需要重新设计云端存储系统,该系统可以为云端大数据计算提供高效可靠的存储基石,在实现无限存储的同时,重点满足对元数据的需求。

为此,我们提出了一种基于对象存储的通用分布式文件系统设计方案:cloud native hdfs,简称 CHDFS。

二、CHDFS 整体介绍

CHDFS 整体架构如图所示。

CHDFS,在对象存储之上,充分发挥云端优势,构建可扩展的 metadata 层,实现对 HDFS 语义的支持。通过高度优化的 metadata 层,可以支持海量元数据的高效访问。在元数据规模远超 HDFS 的情况下,达到接近原生 HDFS 性能的效果。同时提供优化了读写数据流的 java 客户端,在支持高效元数据操作的同时,充分发挥了对象存储高吞吐和低成本的优点。

CHDFS 基于对象存储实现文件系统语义,数据托管给对象存储,把对象存储当做磁盘使用,在此基础上构建文件系统分布式元数据层,支持海量数据。基于对象存储托管数据,可以自动获得对象存储的优势,如低成本,高可靠,大吞吐,高可用等特性,容量可达到百 PB 级别。

三、CHDFS 元数据服务特点

CHDFS 元数据服务采用分布式架构,在元数据读写方面做了较多优化,支持百亿级别的文件数据量,突破了 hdfs namenode 规模限制,同时保证了严格的强一致语义。

对比 COS 和 HDFS,具有以下特点:

  • 毫秒级别的原子 rename 操作,对目录和文件都适用;
  • 元数据强一致,写入后立即可见;
  • 支持百亿级别的文件数量,远超 HDFS 规模,延迟和 HDFS 相当;
  • 单文件系统,元数据支持 10w 以上的 qps,满足大规模计算的高并发需求;
  • 高可用,秒级的 ha 切换时间;
  • 元数据并行加载,冷启动速度 比 HDFS 快1个数量级;
  • 元数据跨区域/可用区复制,进一步提高可靠性;

CHDFS 提供了多种元数据引擎,在面临不同的应用场景时,用户可以有多种选择,达到成本、容量和性能的平衡。

在接口上,CHDFS 完全兼容 HDFS,可以轻松在两个系统之间迁移数据。

四、COS 为 CHDFS 提供数据底座

对象存储 COS 作为云端基础存储服务,为 CHDFS 提供了坚实的数据底座,CHDFS 的文件数据分块后存储在 COS,具有以下优点:

  • 海量存储,支持百P级别的数据量,容量自动扩展;
  • 超大带宽,支持 Tbps 级别的带宽,大数据计算可以充分发挥 COS 高吞吐的优势;
  • 数据多AZ,带来了11个9的超高可靠性;
  • 数据存储默认EC编码,成本更低;
  • 支持文件数据跨区域复制;
  • 智能分层支持,根据数据的冷热程度,自动分层,进一步降低存储成本;

同时,CHDFS 提供了高性能的 HDFS 兼容的 java sdk,针对大数据场景做了全面优化,实现了高效的读写缓存机制,可以充分发挥 COS 在数据流方面的优势。

五、丰富的产品功能

除了上述提到的强大的文件读写能力外,CHDFS 还提供了丰富的产品功能,来满足大数据场景下客户的多样需求。

对于关注成本优化的客户,CHDFS 提供了存储生命周期管理功能,能够通过简单的配置页面,让客户的文件自动沉降到成本更低的存储介质,进一步降低客户使用云端存储的成本,真真正正的帮助客户省钱。当客户需要访问这部分沉降的冷数据时,CHDFS 提供了功能强大、方便易用的命令行工具,使文件回到热存储层供客户使用。

对于有存储内容感知需求的客户,CHDFS 提供了强大的文件清单功能,可以按照客户指定的文件格式及过滤字段,离线导出文件信息,并且投递到客户的文件系统中。客户可以通过读取该清单文件,进行多维度的业务文件属性分析,如文件平均大小分布等。甚至还可以作为客户从本地 HDFS 导入 CHDFS 过程中的一种文件校验手段。

六、生态整合

CHDFS 提供了完全兼容 HDFS 的协议,可以无缝支持常见的大数据计算框架,如 Hive,Spark,Presto,Flink 等。

CHDFS 目前已经和腾讯云 EMR 产品紧密集合。客户购买 CHDFS 产品后,无需安装任何环境,即可直接在腾讯云 EMR 上使用 CHDFS 产品,进一步简化客户使用 CHDFS 的上手成本。

腾讯云 CHDFS — 云端大数据存算分离的基石的更多相关文章

  1. 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData

    9月11日,在腾讯全球数字生态大会大数据专场上,腾讯云大数据产品副总经理雷小平重磅发布了全链路数据开发平台WeData,同时发布和升级了流计算服务.云数据仓库.ES.企业画像等6款核心产品,进一步优化 ...

  2. 从 Hadoop 到云原生, 大数据平台如何做存算分离

    Hadoop 的诞生改变了企业对数据的存储.处理和分析的过程,加速了大数据的发展,受到广泛的应用,给整个行业带来了变革意义的改变:随着云计算时代的到来, 存算分离的架构受到青睐,企业开开始对 Hado ...

  3. 华为云BigData Pro解读: 鲲鹏云容器助力大数据破茧成蝶

    华为云鲲鹏云容器 见证BigData Pro蝶变之旅大数据之路顺应人类科技的进步而诞生,一直顺风顺水,不到20年时间,已渗透到社会生产和人们生活的方方面面,.然而,伴随着信息量的指数级增长,大数据也开 ...

  4. 存算分离下写性能提升10倍以上,EMR Spark引擎是如何做到的?

    ​引言 随着大数据技术架构的演进,存储与计算分离的架构能更好的满足用户对降低数据存储成本,按需调度计算资源的诉求,正在成为越来越多人的选择.相较 HDFS,数据存储在对象存储上可以节约存储成本,但与此 ...

  5. ClickHouse 存算分离架构探索

    背景 ClickHouse 作为开源 OLAP 引擎,因其出色的性能表现在大数据生态中得到了广泛的应用.区别于 Hadoop 生态组件通常依赖 HDFS 作为底层的数据存储,ClickHouse 使用 ...

  6. 揭秘阿里云EB级大数据计算引擎MaxCompute

    日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...

  7. 大数据理论篇HDFS的基石——Google File System

    Google File System 但凡是要开始讲大数据的,都绕不开最初的Google三驾马车:Google File System(GFS), MapReduce,BigTable. 为这一切的基 ...

  8. 阿里云ODPS <====>蚂蚁大数据

    1.命令行客户端工具的安装参考文档:http://repo.aliyun.com/odpscmd/?spm=a2c4g.11186623.2.17.5c185c23zHshCq 2.创建和查看表:ht ...

  9. 阿里云Mysql导入大数据文件

    1.查询数据保存为CSV文件 select * from account into outfile '/root/account.csv' fields terminated by ',' enclo ...

随机推荐

  1. pandas对列求和

    了解更多,请关注公众号"轻松学编程" 一行代码实现对列求和 使用pandas把列表中的字典元素转成二维数组,然后使用pandas函数实现对每一列求和. 代码: import pan ...

  2. 从小白到 6 个 offer,我究竟是怎么刷题的?

    最近自习室里又兴起了一阵刷题潮,大家相约刷题~ 今天和大家系统分享下我去年转行时的一个刷题过程和方法,希望对你有所帮助. 首先介绍下我的编程基础,我学的是金融工程专业,硕士时学过 C++ 的课,这也是 ...

  3. 较详细的gdb入门教程

    本文主要介绍gdb的基础使用.若需了解一些技巧,请访问此篇博客:点这里 本篇教程适用于Windows,macOS及Linux,但由于Windows的自带终端很难用,所以体验可能不太好.Windows ...

  4. PS零基础入门教程--裁剪工具用法

    我是IT轩,分享一下我使用PS的一些用法,希望对大家有帮助!欢迎关注微信公众号:笑林新记 PS版本:PS CC 2019 主要技术:裁剪工具. 裁剪工具主要有:裁剪工具.透视裁剪工具.切片工具和切片选 ...

  5. 专业之旅——GitHub 热点速览 Vol.45

    作者:HelloGitHub-小鱼干 从入门到精通需要什么?AI-Expert-Roadmap 带你开启专业之旅,和 135k+ 高星项目 developer-roadmap 一样, AI-Exper ...

  6. DB2添加联合主键

    CREATE TABLE EQUIPMENT_DAILY_CAL( EQU_DATE TIME NOT NULL ,/*日期*/ SEQ_ID INTEGER NOT NULL,/*序号 */ FAU ...

  7. 鸿蒙系统应用开发之JS实现一个简单的List

    在之前的文章鸿蒙应用开发之怎么更好的远程连接手表模拟器做调试里我运行了一个穿戴设备的应用,利用JS UI实现了一个最简单的HelloWorld. 今天我打算在智慧屏设备上利用豆瓣音乐的接口数据实现一个 ...

  8. 09线程隔离的g对象

    1,g是global的意思. g对象再一次请求中的所有的代码的地方,都是可以使用的. 同一次请求,那么在这个项目的所有地方都可以用了. from flask import Flask,request, ...

  9. absolute与relative 的超越

    relative 超越了自身而已,所有位置的变化是相对于正常流下自身的表现而言 absolute  超越了父容器,位置信息是基于父容器的位置而言

  10. 利用.NET 5和Github Action 自动执行米游社原神每日签到福利

    背景 众所周知,原神的签到福利是需要下载app才可以领取的.但像我这种一般不怎么刷论坛的人,每天点开app签到很麻烦. 很多大佬利用Github的Action自动执行的模式,实现了很多好东西.加上.n ...