天天看点

大数据发展趋势之存算分离

作者:大数据与人工智能分享

大数据集群从最初开始建设时,一般都采用存算一体化的架构,主要是考虑部署简单、管理起来也方便。但是随着集群规模的不断扩大,在整个集群的资源规划和稳定性上都遭受到了不同程度的挑战。业务数据不断增长和技术框架的不断革新,导致集群资源无法始终维护在一个存储和计算比较均衡的状态。因此,对集群适当做一些存储和计算的拆分,一方面可以提升集群的稳定性和性能,另外一方面,也可以降低整体的成本。达到降本增效的效果。

1存算分离和存算一体化

早期的大数据集群的建设,都是采用存算一体化的形式进行的,购买几台即包含计算资源又带一定存储的机型来搭建整个大数据集群,如下图:

大数据发展趋势之存算分离

随着累积的数据量的增大,大数据业务量的增多,数据存储和处理的成本越来越高,但是在通常的情况下需要存储能力和计算能力并不是同步提升的,两者之间之间会打破存算的平衡,这时我们是需要单一扩展计算能力或者存储能力这样做可以更好的降低成本。企业数据基础设施的投资越来越大,这部分投资挤占了企业大数据业务创新的空间。 这种架构要从Hadoop架构发展来看,2004-2006年间,Google陆续发表了Google File System、MapReduce和BigTable三篇革命性技术的文章,奠定了分布式系统理论基础。 Hadoop1.0使用通用服务器和普通硬盘搭建了大规模数据存储和计算集群。在设计之初,由于单机吞吐量和集群网络带宽限制,Hadoop集群部署都存储和计算在一起,将计算的代码移动到数据所在的地方,而不是将数据传输到计算节点,这种方式可以产生更少的数据迁移,降低机器间、机柜间的网络带宽消耗,有效解决了分散在各个弱连接的存储节点间的海量数据访问的困难。

2存算分离

1.多层存储业务的数据量是一直不断在增长的,但是数据一般具有一定的时效性,更多的会集中在最近一两个月甚至最近一两周的数据,大量历史数据更多的是在某些特殊的场景下会被利用到,比如:几个月前的用户行为数据。大量的存储空间被这种重要但已经“过期”的数据所占据。在大部分的存储系统中,经常被访问的数据(热数据)一般只占了15% ~ 25%,而不经常被访问的数据(冷数据)却占了75% ~ 85%。由于冷数据不活跃的特点,如果对冷数据的存储进行一定的改造,将会取得较为不错的成本收益。

大数据发展趋势之存算分离

把原本一个集群拆分成两个集群,分别称之为:热集群和冷集群。2.计算混部存储上可以根据数据冷热做到多层存储,计算层也可以通过一定的混部措施来提升业务整体计算的利用率。按照通常企业的业务的特性,一般在线的业务高峰期每天的10:00-24:00,而离线计算的高峰期在24:00-8:00,从时间分布来看,在线业务与离线业务存在较好的互补特性。因此,如果能够把部分离线的任务在在线业务的低峰期,能跑在在线业务的服务器上,做到在线离线业务混合部署,也是可以节省离线计算服务器。3.结合数据湖技术存储分离实现

开源社区提出了湖仓融合的新兴数据格式,支持数据湖、数据仓库使用同一种格式,同一份数据支持多种组件访问,减少数据重复存储和搬迁,缩短了数据加工链路、减少中间过程的同时,大大提高了数据分析的效率。

大数据发展趋势之存算分离

3优点好处

1.存算分离改造带来的另外一大好处是把原先大数据计算过程中的离散I/O(shuffle数据)和顺序I/O(数据块)进行了很好的拆分,解决了计算过程中的I/O瓶颈,从而进一步提升了CPU的利用率。2.在计算或者存储能力不足时,可以进行单一扩展不再需要同时扩充计算和存储能力可以有效的降低成本,这个也是最为重要的一点。3.存储可以不在局限于单一模式,可以更好的支持更多的数据模式,不仅仅支持hdfs,同时也支持了s3,oss,obs等对象存储,更方便的上云。

4云环境下的存算分离

回过头来看看开头的两个问题:集群经常出问题,需要做存算分离改造,其实还可以有较大的优化空间,比如:增加NameNode JVM的内存,或者合并小文件减少元数据信息等等,一般情况下,几十台的规模远不会达到HDFS性能瓶颈。至于大数据集群是否适合做存算分离,主要从两个方面来考虑:

  • 技术层面:存算分离是否能够简化我们的技术栈,或者解决某些瓶颈问题。
  • 成本层面:存算分离能否在计算性能、存储空间等方面带来成本上的优势。

继续阅读