聊一聊所谓的alluxio

1: alluxio是什么

  Alluxio : 开源分布式内存文件系统, 简而言之就是,你不用每次都从原始文件去读,如果你的文件在alluxio内存中,可以直接从内存去读。

2: alluxio架构

聊一聊所谓的alluxio_第1张图片
alluxio架构

master节点负责管理worker节点,数据存储在worker节点中。

对于每一个worker,worker daemon为一个JVM,负责管理Ramdisk,数据存储在Ramdisk中。

如果有高可用性的需求,可以设置standby master和zookeeper来容错,这里会有性能损耗。

2: alluxio月spark的区别

spark的特点是也是基于内存计算,计算的前提是load数据至内存中。

聊一聊所谓的alluxio_第2张图片
spark 架构

在Spark中,如果job2需要Job1运算的数据,Job1首先需要将数据写入到HDFS的block中,会产生硬盘甚至跨网络的读写,同时在HDFS中默认数据需要写三份,因此造成性能的损失。

针对以上问题, 基于alluxio能做到各个job间的同一份数据的内存共享。

Alluxio在HDFS/ Amazon S3和计算引擎中间提供了中间层,Spark的Job1不需要写到HDFS中,而只需要写到Alluxio的内存中,Job2可以从内存中读取相应数据。

聊一聊所谓的alluxio_第3张图片
alluxio数据共享


3: 来个总结

如果你的场景中同一份数据有很多job在用,有这种内存共享的场景,alluxio是一个不错的选择。 但是不管是alluxio 还是 spark 以至于传统的缓存redis or memache, 想要在大数据时代从一份大而杂的数据中命中快速选择中自己的数据,这还要投入人力和物力开发出一套适合自己业务场景的数据检索引擎服务才行。

你可能感兴趣的:(聊一聊所谓的alluxio)