简单了解存算分离


前言

在大数据领域经常听到的一个词就是存算分离,下面向大家简单介绍下存算分离的由来和发展。


一、十几年之前

1.Hadoop问世

2006年随着Hadoop的发布,各种计算组件也开始百花争鸣,但是存储系统HDFS却是一枝独秀,成为了所有计算组件的默认选择。

2.IO瓶颈

我们回想一下06年的网络,服务器的网卡带宽只有100Mb~1Gb,磁盘吞吐50MB/s… …

二、十几年发展过程

1.Hadoop的优化

在数据量大,网络有瓶颈的情况下,如何处理海量数据呢?
Hadoop计算存储耦合,为了减小网络传输,任务调度时,会把计算任务尽量发送到数据所在的服务器上,一些如机架感知等技术也应运而生。

2.发展过程中的问题

计算和存储的不平衡发展。随着人们对于数据潜在价值认识的提升,你会听到领导经常说的一句话是“先把数据都存下来,后边用到的时候会很方便”。然而,数据是都存下来了,可是应用场景呢,需求呢?

2.1.算力的浪费

随着数据存储需求的日益增加,我们需要不断的增加服务器,因为此时计算和存储是耦合在一起的,所以我们在增加服务器的时候就不能只增加存储,还要考虑算力问题。存储需求满足了,但是算力却浪费了。

2.2.数据倾斜

虽然Hadoop已经对计算存储进行了优化,但是还是不能排除会有局部热点数据,需要非常多的算力,这种情况数据会倾斜,计算任务不一定能有效的调度到数据所在存储节点上。

2.3.运维复杂

缩容较复杂,因为数据分布在各个节点上的,所以要对每个节点上的数据做迁移,这种情况无法做到弹性伸缩。

三、十几年发展后

1.网络、磁盘性能提升

万兆网卡的普及,以及磁盘读写速度大幅提升。
高效的压缩算法和列存格式也减少了IO开销。
IO已逐渐不是瓶颈。

2.存算分离逐步发展

2.1.独立部署HDFS及存在的问题

HDFS独立部署,计算节点通过网络传输读取HDFS上的数据。
但是HDFS独立部署也存在如下问题:

  1. HDFS云上部署成本过高,运维成本高。
  2. HDFS的NameNode 只能 Scale-up(垂直扩展:只能通过提高机器的配置实现扩展,无法通过增加机器数量实现扩展)。文件数量超过5亿只能做 Federation(联邦),增加了运维管理的成本,也影响使用效率。
  3. NameNode只有双机互备方案,高可用性不足。
  4. Java GC会影响系统可用性。

2.2.对象存储替代HDFS及存在的问题

对象存储是存储系统服务化,能实现弹性伸缩。
但是由于Hadoop体系下对于HDFS的依赖,大部分组件对对象存储不兼容。同时性能和稳定性也有待提高。

2.3.新一代的存算分离

  1. 湖仓一体的提出,数据湖和数仓使用同一种格式,同一份数据支持多种组件访问,减少数据重复存储和搬迁。
  2. 云计算、云存储的大力发展,一湖多云也成为了趋势。

总结

存算分离具有高扩展、低存储成本和易用性高、可靠性高的特点,本文只是简单向大家介绍一下存算分离的发展,如有描述不当之处,请指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值