前言
目前,先进组织都已经建立或者正在规划建设自己的数据湖,用来支撑大数据分析业务。存储作为数据湖的底座,业界有两个技术流派:一是基于分布式文件,二是基于对象存储。
为满足大数据不同场景需求, XSKY 星辰天合基于对象存储、文件存储不同存储类型,提供不同大数据存算分离方案:
A.基于分布式文件存储的大数据方案
原生 HDFS 大数据方案: 主要适用于业务适合文件存储,对 Hadoop 组件兼容要求高,和大数据计算层无缝对接,计算层程序零改造的大数据场景。
B.基于对象存储的大数据方案
对象 XHFS 客户端大数据方案: 适用于业务适合对象存储,需要在对象存储上提供大数据分析能力,且可以无缝上下云,做云端分析或云端数据重建。
本文是 XSKY 星辰天合大数据存算分离解决方案的上篇,详细介绍基于分布式文件存储的大数据方案。基于对象存储的大数据方案在下篇章详细介绍,敬请期待!
一、 Hadoop 发展现状
市场现状
IDC 于 2021 年 6 月发布了《中国大数据平台市场研究报告 -2020 》,报告显示: 2020 年全球大数据软件市场规模达 4,813.6 亿元人民币,微软、 Oracle 、 SAP 作为 Top3 的厂商贡献了 30% 以上的市场份额;中国市场,包括硬软服在内的中国大数据市场规模达 677.3 亿元人民币。 **
Hadoop免费午餐结束,用户如何选择?
2018 年, Cloudera 和 Hortonworks 合并,紧接着 HPE (慧与)宣布收购 MapR ,这些迹象在说明,在 Hadoop 风光的表象之下,是企业经营困难。
2020 年底 Cloudera 宣布,从 2021 年 1 月 31 日开始所有产品线全面收费,包括历史的开源版本也要付费后才能获取,开源的产品不再面向全部用户,而是仅仅针对付费用户。过去一直被大家免费使用的 HDP 发行版,也不再维护和提供下载了,未来都合并到统一的 CDP 平台。
Apache Hadoop 可以免费使用,但是开源软件没有服务,也没有 SLA 保证,出了问题只能自己去研究和解决,有问题发到社区,然后慢慢等结果,同时市场上的 Hadoop 开发或运维工程师价格也是不菲的;
计算上面的替代品比较多,但是存储没有(计算可以自己做,但存储很难自己做)
二、引入商业存储,存算分离是必然趋势
存算分离优势
当前存算分离实现方案
客户端模式
HCFS ( Hadoop Compatible FileSystem ),即 Hadoop 兼容文件协议。以无服务的依赖库形式,可以被应用所依赖,目前大多主流云厂商和部分商业存储厂商都以通过 HCFS 方式实现对 HDFS 协议的支持。该方案需要在计算端安装专用的客户端并修改 hadoop 组件配置项,应用端零改造。
实现存算分离的另一种方式则是服务端模式,即通过在存储端实现 HDFS 的 NameNode 和 DataNode 服务接口,使计算节点通过原生 HDFS 客户端即可访问存储系统。服务端模式无需在计算节点上安装私有客户端,以低耦合的方式交互。
三、 XSKY 基于分布式文件的大数据方案
原生 HDFS 大数据方案
方案介绍
上图为 XSKY XGFS 大数据存算分离方案架构图, XSKY XGFS 在大数据存算分离方案中主要提供基于原生 HDFS 协议的 HDFS 网关能力以及元数据管理和数据管理能力, XGFS 在 HDFS 网关中模拟 HDFS 的 NameNode 和 DataNode 角色,可收发原生 HDFS 协议的请求,亦可直接访问 XGFS 元数据与数据。同时可无缝对接大数据计算层各个组件。
XGFS HDFS 网关是模拟 NameNode 和 DataNode 角色,所以不会直接存储元数据和数据,所有元数据和数据将分别存储在 XGFS 的元数据集群和数据集群中。
通过 XSKY XGFS 大数据存算分离方案,可以解决 HDFS 所面临的以下挑战:
下面我们将对上面提到的特性逐个进行详细介绍:
方案优势
如图上所示, XGFS 包含了 HDFS GW (即 HDFS 分布式网关,简称为 HDFS 网关)以及元数据管理集群和数据管理集群三大模块, XGFS 在 HDFS 网关模块模拟了 HDFS 中的 NameNode 和 DataNode 两个角色,由 NameNode 和 DataNode 将对外提供原生 HDFS API ,并负责接发、转送客户端发过来的数据读写请求。元数据和数据不会保存在 NameNode 和 DataNode 角色中,而是分别存储于 XGFS 的元数据管理集群和数据管理集群。
通过在 HDFS 网关中模拟 NameNode 和 DataNode ,客户端可通过原生 HDFS 协议直接访问 HDFS GW ,可带来如下价值:
HDFS 实现了一套兼容 POSIX 的文件权限模型,包括粗粒度的 POSIX UGO 模型和细粒度的 POSIX ACLs 协议, XGFS 文件存储可很好的兼容 HDFS 权限控制。
XGFS 目前已支持 NFS 、 SMB/CIFS 、 POSIX 、 FTP 、 HDFS 、 S3 、 CSI 等协议之间互通,同一份文件既可以通过原生 HDFS 接口访问,又可以使用其他文件协议接口访问,无须协议间做数据拷贝。
要做到文件多协议之间的互通,首先需要打通用户和元数据层,也就是统一用户、统一命名空间。在 XGFS 界面创建一个本地用户后,可以配置开启 S3 协议访问权限,也可将同一文件目录通过不同的文件协议共享出去供不同的上层应用访问,且每个协议均可访问其他协议上传的文件。例如在 S3Browser 上可以看到桶 user01bucket 中由 HDFS 、 CIFS 和 NFS 协议写入的文件。
同时用户可针对不同的上层应用场景,灵活地选择适用的文件协议,例如:
另外对于基础设施和运维团队来说,可以不需要为不同的应用维护各种协议的存储系统,也不需要在多个存储系统中拷贝同一份数据。
如上图所示, EC ( Erasure Coding )纠删码技术是将一份数据切分成 K 块原始数据,基于 K 块原始数据块中计算出 M 个校验块,并将 K+M 块数据分别存放在存储系统中的不同存储节点上,当其中任意 M 块数据出错时,存储系统可通过数据恢复算法恢复出原来的 K 块数据,实现冗余和容错的目的。
如上图所示, HDFS3.x EC 纠删码目前只支持 2+1 、 3+2 、 6+3 、 10+4 模式,默认为 6+3 模式,最高为 10+4 模式,得盘率 71.43% 。而 XGFS EC 纠删码的得盘率最高为 88.89% ,且 XGFS 支持精简 EC ,如 4+2:1 、 8+2:1 和 16+2:1 ,在资源有限的情况下尽量提高得盘率,降低成本。
另外 XGFS 支持用户自定义 K+M 具体值,方便用户根据资源情况自定义 K+M ,使得资源使用最大化。
如上图所示,相比较于 HDFS , XGFS 具备很强的扩展性,主要通过以下几个方面实现:
通过以上四个扩展性方面的强化, XGFS 可以带来以下客户价值:
XGFS 在大数据容灾场景支持同步复制和异步复制两种方式:
同步复制
可通过延展集群的方式实现园区或同城的数据中心级双活及数据灾备,实现 RPO=0 ,数据零丢失。延展集群是分布式存储实现数据跨站点双活的解决方案。延展集群将存储集群从单个站点扩展到两个站点,存储池中数据副本跨站点分布,实现了更高级别的可用性。延展集群可以替代传统共享存储集群或存储镜像集群等解决方案,实现园区或同城的数据中心级双活及灾难恢复。很好的解决了 HDFS 无原生双活方案的问题,通过引入 HDFS 分布式网关,就能快速的实现数据和业务双活部署的需求。
将多个 XGFS 部署在不同的机房(站点),通过 X3DS 数据管理工具,实现不同站点间的文件数据异步复制,当主站点故障后,大数据应用可切换至备站点,从而满足大数据应用容灾备份的需求,提高业务可靠性; 同时, X3DS 在进行数据异步复制的同时,可灵活配置复制策略及数据复制 QoS 控制,降低业务影响。
四、典型场景
与原 HDFS 共存 —— Viewfs
针对大数据体系非常庞大,业务使用场景复杂的用户,可以使用新旧存储共存的方案。小规模高性能实时场景仍然使用 HDFS ,其他大规模的数据可以存放在 XGFS 。因大规模的数据都在 XGFS 中,所以后续扩容主要是针对 XGFS 的扩容,可以降低对 HDFS 的依赖,存储计算各自按需扩容。
新旧存储共存方案可通过 VIewfs 实现 XGFS 与原 HDFS 的共存。在集群的 core-site 配置中, fs.defaultFS 被设置为 ViewFS 的 root 目录,也就是指定的 mount-table 。 XGFS 、 HDFS 的挂载目录则在 mount-tables 中分别指定。
替换原有 HDFS
针对 HDFS 替换场景,原 HDFS 数据可通过 X3DS 迁移至 XGFS ,同时新产生的数据可以直接写入 XGFS 。且 XGFS 支持对接多套大数据集群,各个集群无需进行数据的复制迁移,可直接通过原生 HDFS 协议读取同一套 XGFS 中的数据。另外 XGFS 5.2 具备全协议特性,除原生的 HDFS 协议以外,还可以兼容 NFS/CIFS/FTP/S3 等不同协议的上层应用。
做 HDFS 二级存储——同城 / 异地
针对用户存在大量冷数据,但是需要随时被 HDFS 调用的场景,可将 XGFS 作为 HDFS 的二级存储使用。通过将大量访问频率不高的冷数据从 HDFS 迁移至 XGFS 中作为备份归档用,在实现分级存储的同时又可减轻 HDFS 存储的压力,扩容方面也可实现一定的按需扩容,而不用和计算资源强绑定。
另外,为应对冷数据随时可能被 Hadoop 调用的可能, XGFS 可以考虑通过 viewfs 实现 Hadoop 计算集群的对接,方便 Hadoop 计算层通过原生 HDFS 协议调用 XGFS 中的冷数据。同时, XGFS 具备全协议特性,针对不同协议的上层应用,可直接访问 XGFS 中的数据。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论