Tachyon(/'tæki:ˌɒn/意为超光速粒子)是一个以内存为中心的分布式文件系统,具备高性能和容错性,能够为集群框架(如SparkMapReduce)提供内存级别的速度和文件共享服务。在软件栈层面,Tachyon(现称为Alluxio)位于大数据计算框架与大数据存储系统之间。它使用底层文件系统作为数据备份,从上层应用来看,Alluxio即是一个分布式文件系统。Apache Hadoop集成的Alluxio提升大数据分析速度,解决磁盘系统的性能瓶颈。

Alluxio在软件栈中的位置

Alluxio设计初衷在于通过内存提升速度,特别适用于SparkMapReduce等集群计算框架。在架构上,Alluxio位于计算框架和存储系统之间,作为中间层为上层应用提供文件系统接口,同时利用底层文件系统(如HDFS)持久存储数据。

Master-Worker模型架构

Alluxio采用Master-Worker模型:

- Master节点:负责管理文件元数据,并通过ZooKeeper实现高可用性。Master利用Journal(Editlog和Image)记录元数据容错。

- Worker节点:本地Ramdisk用于数据存储,定期向Master心跳同步状态。文件按块管理,每个块可在多个Worker缓存,提升并发访问效率。底层文件系统(UFS)用于文件备份,防止内存数据丢失。

Alluxio的API与容错机制

Alluxio API提供多种读写类型,支持不同缓存和写入策略(如CACHENO_CACHECACHE_THROUGH等)适应多种场景需求。此外,容错机制包括Master和元数据容错,以及Worker节点的自动重启。通过文件血统关系(Lineage)追溯文件依赖关系,丢失文件可重计算恢复。心跳机制则确保内存利用的实时同步。