加入收藏 | 设为首页 | 会员中心 | 我要投稿 武陵站长网 (https://www.50888.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

技术干货 | 数据沙盒技术- 大数据架构发展趋势之计算和存储分离

发布时间:2022-11-26 04:00:44 所属栏目:大数据 来源:未知
导读: 本文非原创,编译自参考文献中列出的IDC Report
大数据平台典型部署架构

大数据平台的典型部署架构,以往都是存储和计算资源共用,例如Cloudera CDH的集群配置, 每个集群的工作节点都是YA

本文非原创,编译自参考文献中列出的IDC Report

大数据平台典型部署架构

大数据平台的典型部署架构,以往都是存储和计算资源共用,例如Cloudera CDH的集群配置, 每个集群的工作节点都是YARN的计算节点和HDFS存储节点。

大家知道Hadoop的设计是来源于Google GFS,它包含分布式文件系统HDFS和分布式计算框架MapReduce大数据存储架构, 构成HDFS的服务器集群通常是是机架式服务器,每个节点挂载多块本地硬盘,这些节点同时又运行分布式计算任务。

在Hadoop刚推出的时代,服务器的网络速度通常在100Mbps到1Gbps,海量的数据如果需要在服务器之间传输会很耗时,Hadoop上的分布式计算任务在处理海量数据时,为了避免大量耗时的网络传输,就设计为尽量使用节点上本地硬盘中存储的数据,而不是通过网络访问共享存储的方式,这就带来了存储和计算绑定和共用的设计。

HDFS为了实现数据的高可用,将数据的每个单元(Block)保存多个副本(Replica),不同的副本保存在不同的节点上,分布式计算也同时切分为多个任务,每个任务都分配给在本地具有该数据副本的节点上去执行,这样就大大减少了网路带宽的使用,不需要频繁将数据从一个节点传输到另一个节点。这个设计从Google发源到Hadoop生态圈的不断发展成熟,带来了我们现在的大数据时代。

Hadoop的这种架构设计在当时是一种突破,经过多年的发展,已经非常成熟,可以支持PB级别的数据处理,集群节点数量可以根据计算和存储需求扩展,可以构建数千个节点的Hadoop集群,数据的读取大都是在离数据副本最近的集群节点上,因此数据处理过程中的数据访问非常快速和高效。

当然,这样的架构的副作用是,Hadoop的用户不能将计算和存储分别扩展,通常Cloudera CDH扩容是通过添加相同配置的节点,同时扩充集群的计算和存储资源。数据的多份副本也就意味着大量的数据冗余,并且数据处理计算时不能完全确保数据本地访问,还是会有部分的资源开销用于数据在网络中传输,导致处理延迟。

近些年硬件的一个发展趋势是CPU和网络速度的增长远快于存储,数据中心通常有足够的带宽来用于数据的传输,而随着数据量的增长到PB和EB级别,使用多份副本保存数据的机制造成的成本增加,反而使得计算和存储绑定架构的实用性变差。从数据处理应用的角度,Spark, Flink等计算框架已替代MapReduce,不仅是批处理,流式处理等实时应用越来越普遍,数据也不再是静态的,这些应用的I/O访问模式和存储需求需要新的架构去支持。

另一个发展趋势是,虚拟化和容器技术带来的灵活性和有效的资源利用,以及云计算这种资源即开即用的机制,使用物理机(Bare Mental)的部署方式不再适应这个趋势,数据分析和数据科学团队也需要大数据平台能够具备种灵活、敏捷、高效和低成本这些新的特征。

大数据平台未来发展趋势

计算和存储分离将会是未来大数据平台的发展趋势,下面是几个这方面的相关示例:

不同于MapReduce, 现在许多大数据查询引擎都可以支持计算和存储分离,例如Spark, Apache Drill, AWS Athena和Redshift,这些查询引擎都具备将元数据持久化到编目中,如果数据在外部存储中就通过引用的方式,而不是将其ETL到本地保存。

Hadoop开源生态圈和社区也已经开始拥抱计算和存储分离,除HDFS之外,Hadoop还支持其他各种分布式存储和云存储,Amazon S3, Azure Blob, Alluxio, OpenStack Swift等。用户可以在私用云或公有云上运行Hadoop的计算集群,连接共享存储或云存储,目前Cloudera CDH已支持Amazon S3, 部署在Amazon公有云上的CDH作为计算集群运行MapReduce或Spark任务,而数据存储则使用Amazon S3作为共享存储。

Hadoop 3.0版本中包含了纠删码(Erasure Code)功能,在不降低数据存储高可用的基础上减少数据存储空间,这使Hadoop在计算和存储分离机制的实现上前进了一步。纠删码这种数据保护技术是通过在原始数据中加入新的校验数据,使各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复。对比副本存储的存储效率,当默认副本为3个的话,存储效率仅为33%,如果存放副本的3个有2个对应的磁盘损坏,数据不会丢失;使用纠删码(数据和校验码12:4)的情况下,存储效率为75%,任意4个磁盘损坏不会丢失数据。

由此可见纠删码在存储效率和数据可靠性上都比副本机制成倍提高。纠删码的数据编码和解码需要消耗CPU资源,Intel的Intelligent Storage Acceleration (ISA)通过CPU的特殊指令集可以实现编码和解码的硬件加速,可以将使用纠删码的额外CPU开销几乎可以忽略不计。

Cloudera CDH 6.x版本已经包含了纠删码功能,作为一种存储选项,用户可以将数据量大,但是访问频率较低的冷数据使用纠删码方式存储,对应的冷数据集群和计算集群可以分别部署。

计算和存储分离架构的主要优势如下:

CPU和存储可以分别扩容:用户可以选择合适的计算资源和存储资源,当计算资源不够时可以单独添加,避免了计算和存储共用方式可能造成的资源浪费。

集中存储单份数据:通过计算和存储分离,不同的计算集群,Hadoop HDFS, Spark, Cassandra, MongoDB或Tensorflow只需共享访问同一个数据湖存储,节省数据存储的成本;用户可以使用企业级的共享存储提供持续一致的高性能服务,数据管理和数据安全也可以统一有效的管理。

赋能敏捷应用开发:通过企业级共享存储提供的数据快照和内存复制功能,测试和开发可以快速和高效的使用相关数据。

混合云部署支持:计算和存储分离架构可以让用户根据数据处理应用场景和实际计算、存储要求选择使用公有云和私有云的相关资源,例如在机器学习的数据探索阶段,如果需要大量计算资源,可以使用公有云搭建计算集群,连接私有化部署的企业存储,减少前期硬件资源投入。

大数据时代的it架构设计pdf_分布式数据存储架构_大数据存储架构

简单和灵活的软件管理:大数据集群中各组件的版本使用和管理更加方便有效,共享存储集群的HDFS版本通常使用稳定版本,计算集群的组件可以根据应用需求使用升级对应的版本。使用数据沙盒和容器技术,用户可以动态创建各种类型的计算沙盒,如Spark, Flink, Tensorflow, Kafka, Apache Ignite, 关系型数据库等,这些沙盒的计算资源需求可以根据需求创建,沙盒的底层框架基于Kubernetes和Docker容器,沙盒中的数据处理任务访问共享存储集群的HDFS,任务完成后,沙盒的计算资源就可以释放并回收,另外其中的组件版本可以根据应用的需求独立升级,互不影响。

企业用户可以通过以下几个阶段逐步过渡到计算和存储分离的平台架构:

通过POC搭建计算和存储分离的架构,并评估其敏捷性、灵活性、成本等各方面指标。

构建企业数据湖存储集群,集中存放冷、热数据,测试和使用Hadoop生态圈计算和存储分离的技术和产品,包括公有云和私有云的各种类型架构部署,例如使用CDH 6.x版本中的EC,使用数据沙盒技术等等。

当条件成熟时,现有的计算和存储绑定的平台架构逐步迁移到新的存储和计算分离的平台架构,从而发挥其在敏捷性、灵活性、成本等方面的优势。

未来新的大数据应用场景建议使用计算和存储分离架构

参考文档:

IDC Report: Five Benefits of Decoupling Compute and Storage for Big Data Deployments,

Hadoop 3.0 and the Decoupling of Hadoop Compute From Storage,

分布式数据存储架构_大数据时代的it架构设计pdf_大数据存储架构

(编辑:武陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!