暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式大数据中心整合的一个加速方案

白鳝的洞穴 2020-06-30
1525
上星期南京大学鸿程大数据研究院的顾荣博士到老白这里来交流,推荐了一个开源项目-Alluxio。这两天老白也花了点时间研究了一下。Alluxio是一个开源的虚拟分布式文件系统( Virtual Distributed File System, VDFS),起源于一个叫Tachyon的研究项目,它是加州大学伯克利分校AMPLab实验室的李浩源博士的博士论文课题。
Alluxio在大数据栈中的计算和存储之间构建了一个抽象层,其最初的目的是为计算屏蔽存储架构的不同,无论是数据存放在HDFS、GlusterFS还是A3、Swift,对于上层的计算服务,提供的都是一个统一的接口。它为计算框架提供了数据抽象层,使得应用能够通过一个共同的接口连接底层不同的存储系统。
这个软件是以Apache License的开源协议进行发布的,这也意味很快就会有很多从该开源项目发展而来的国产化大数据加速产品出现了。
最初的Alluxio仅仅面向文件服务,这个服务对于我们希望对结构化半结构化数据进行处理还是有一定的差距的。结构化数据存储的是各种关系,而文件服务重点关注的是文件的位置与大小。从2.2版本开始,Alluxio提供了针对结构化数据支持的服务。这个特性为SQL ON HADOOP方面的支持提供了良好的支持。下面是ALLUXIO的结构化数据管理的逻辑架构图。

上图是一个可以快速了解Alluxio的结构化数据服务的很好的逻辑架构图,左侧是存储系统,可以是异构的,多种多样的分布式存储系统/对象存储系统。中间是Alluxio提供的抽象层,通过转换服务,Alluxio将文件转化为结构化数据和元数据,并通过逻辑数据访问层向上面的SQL引擎提供数据服务。转换服务负责将现有数据转换为计算优化的表示形式。这使计算优化数据与存储优化数据之间的物理数据独立性成为可能,随着Alluxio的发展,针对不同的SQL 引擎进行智能化的数据转化,让数据智能化的适应SQL引擎的优化需求,可以作为Alluxio的一个重要发展方向。
Alluxio除了抽象底层的存储系统外,还有一个十分重要的功能是缓冲功能。转换服务与数据缓冲都可以针对SQL引擎进行优化,从而达到加速SQL引擎的目的。
目前Alluxio还在快速发展中,马上要实现针对各种应用智能化的加速还是不现实的,但是在两个大数据分析场景中,具有很好的加速效果。一个是底层存储是异构的,或者两个大数据平台之间有大量的数据共享计算的需求,如果使用Alluxio作为中间抽象层,可以简化数据访问逻辑,同时也可以通过Alluxio的内存文件系统进行加速。
第二个应用场景是解决跨数据中心的多个大数据中心之间的共享计算问题。如果数据分布式在跨数据中心甚至是跨城市的广域环境中,某些数据经常需要跨数据中心访问,那么成本是十分高的,如果引入Alluxio作为缓冲层,一方面统一向上计算的接口,一方面可以将部分远程数据缓冲在Alluxio的内存文件系统中,就可以大幅度提高跨数据中心大数据计算的性能了。这也是目前百度、腾讯等互联网公司使用Alluxio的主要目的。
不管是那张方式,要感受到Alluxio带来的好处,访问特性必定是某些数据会被多次访问,这也是所有CACHE的特性。如果每次访问的数据只访问一次,那么CACHE是不可能加速的。
文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论