Alluxio

Alluxio是一个分布式文件系统,作为大数据处理的中间层,主要用于内存缓存。它由master、workers和clients组成,通过Grpc进行数据请求。Alluxio分为lineage(可选)和persistent两部分,支持无损写性能和通过lineage记录数据历史。文章还讨论了其异步本地复制的Edge algorithm和资源分配机制,以保证重计算的边界。数据可以通过Spark存入或从数据源读入,并使用mount和load命令进行管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

alluxio 【1】是一个分布式文件系统,主要用来做大数据处理,和数据源之间的中间层。

它本身支持内存和SSD,HDD的tiering,但实践中主要感兴趣的是它的内存缓存。

类似Gfs,它有master,workers,和clients。client向master查询数据位置,然后向本地workers提IO请求。workers之间通过Grpc做数据请求。没有复制,读数据在请求节点上也会缓存。

Alluxio本身分为lineage和persistent两个部分。其中lineage部分是可选的。

Cloudera的数据表明,写很重要。34%的用户写的和Input一样多。Alluxio没有复制的原因是这样可以提供更高的写性能。用同步复制不可能提供无损的写性能。用lineage来track文件的历史(先把如何从dataset A构造dataset B的各种参数,程序写入Persistent layer。aka linage log),而且track jobs,并用checkpoint来保护数据,加上journal,可以重新计算出数据。Alluxio和Haoyuan的贡献是提供了bounded recomputation time. 在一个连续写入的系统中,如果perisistent的速度慢于进入的速度,最终会把recomputation的速度无限延长。Alluxio采用的方法是采用一个叫Edge algorithm的算法做异步本地复制,以及他称为recomputation资源分配的机制来保证QoS。

Recomputation Bound的证明写的很简单,没有详细写(好像表述不严谨,也可能是我理解不了),我用白话翻译一下就是,假设我们总是checkpoint叶子,而且是假设是连续不断的checkpoint,中间不休息。那么时间是连续的,如果一个checkpoint花了时间t,中间可能已经产生几个文件了。不管产生多少文件,还是花了时间t。换句话说,在恢复的时候,也只要花时间t就可以recompue了。作者定义了一个变量M,方便证明bound,M是所有文件中,存checkpoint或者从前一个版本计算的最大值。t肯定小于M。作者用了3M,就是前一个文件che

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值