分布式内存文件系统Tachyon
UCBerkeley研发的Tachyon(超光子['tækiːˌɒn],名字要不要这么太嚣张啊:)是一款为各种集群并发计算框架提供内存数据管理的平台,也可以说是一种内存式的文件系统吧。如下图,它就处于这样一个层次:在现有存储系统如HDFS之上,在Spark,MapReduce,Impala等各种计算框架之下。
为什么要有这么一个框架呢?MapReduce就不说了,但像Spark这种内存计算框架,为什么还需要再加一层内存管理的文件系统?因为像Spark这种,框架其实只提供了强大的内存计算能力,但未提供存储能力。那么默认让Spark自己直接在内存管理数据还不够吗?下面就看一下现有的几个问题。
问题1:不同任务或框架间交换数据慢
不同任务或不同计算框架间的数据共享情况在所难免,例如Spark的分属不同Stage的两个任务,或Spark与MapReduce框架的数据交互。在这种情况下,一般就需要通过磁盘来完成数据交换,而这通常是效率很低的。
而引入Tachyon中间层后,数据交换实际上也是在内存中进行的。
问题2:执行引擎和存储引擎是同一进程
这就是前面提到过的,让Spark自己来管理内存会出现的问题。默认情况下,Spark的任务执行和数据本身都在一个进程内。当执行出现问题时就会导致整个进程崩溃,并丢失进程内的所有数据。
而Tachyon这一层的引入,就相当于将存储引擎从Spark中抽离出来,从而每个任务进程只负责执行。进程的崩溃不会丢失数据,因为数据都在Tachyon里面了。
问题3:数据被重复加载和GC
不同的Spark任务可能会访问同样的数据,例如两个任务都要访问HDFS中的某些Block,像下图中的Block1和3。这样就没办法了,每个任务都要自己去磁盘加载数据到内存中。而Tachyon不仅只保存一份数据,而且它还使用堆外内存,避免GC开销。
Tachyon如何容错?
前面我们已经看到了Tachyon如何进一步提升Spark的性能的,包括避免数据落地到磁盘,共享数据以及堆外内存避免GC等。但Tachyon本身又是如何容错的呢?不落地DFS中数据不是照样会丢失吗?而且Tachyon只在内存中保存一份数据拷贝。有一种形象的说法是:Tachyon将lineage从Spark中下移到了自己。既然手握lineage,就有办法了。跟Spark类似,它利用lineage信息(lineage-based recovery)和异步记录的checkpoint来恢复数据 (与Spark类似,都是基于RDD不可变性以及粗粒度操作才能完成的,不同点是Tachyon管理的可以是跨框架的lineage而不限于RDD和Spark的转换?),所以Tachyon放心大胆地积极(aggressively)使用内存。
其次,Tachyon本身的master通过ZooKeeper集群管理,down机时会自动选举出新的leader,并且worker会自动连接到新的leader上。
现在Tachyon版本还只是0.5,资料也比较少。关于其异步checkpointing的图算法也找到什么资料,还没有搞懂。但看起来还挺有意思的,持续关注吧。
参考资料
1 Tachyon-A Reliable Memory Centric Storage for Big Data Analytics
2 Tachyon-Reliable File Sharing at Memory-Speed Across Cluster Frameworks
分布式内存文件系统Tachyon的更多相关文章
- Spark入门实战系列--10.分布式内存文件系统Tachyon介绍及安装部署
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Tachyon介绍 1.1 Tachyon简介 随着实时计算的需求日益增多,分布式内存计算 ...
- Alluxio : 开源分布式内存文件系统
Alluxio : 开源分布式内存文件系统 Alluxio is a memory speed virtual distributed storage system.Alluxio是一个开源的基于内存 ...
- Tachyon:Spark生态系统中的分布式内存文件系统
转自: http://www.csdn.net/article/2015-06-25/2825056 摘要:Tachyon把内存存储的功能从Spark中分离出来, 使Spark可以更专注计算的本身, ...
- 内存文件系统:tachyon(现在叫Alluxio)
此文于2015 年 8 月 10 日发布 Tachyon 是什么 Tachyon 是 AMPLab 开发的一款内存分布式文件系统.它介于计算层和存储层之间,可以简单的理解为存储层在内存内的一个 Cac ...
- spark中使用的内存文件系统-Tachyon FS 简介
转自:http://blog.csdn.net/u014252240/article/details/41810849 发布人:南京大学PASA大数据实验室顾荣 1. Tachyon是什么 Tach ...
- Disque:Redis之父新开源的分布式内存作业队列
Disque是Redis之父Salvatore Sanfilippo新开源的一个分布式内存消息代理.它适应于"Redis作为作业队列"的场景,但采用了一种专用.独立.可扩展且具有容 ...
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 高性能分布式内存队列系统beanstalkd(转)
beanstalkd一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook ...
- [CareerCup] 8.9 An In-memory File System 内存文件系统
8.9 Explain the data structures and algorithms that you would use to design an in-memory file system ...
随机推荐
- SRM 558 SurroundingGame
题意: 给定一个网格,每个网格有选取代价和占据收益.每个点被占据,需要满足以下两个条件至少一个条件:1.被选取 2.邻近方格都被选取(有公共边被称为邻近) 不一定要占据所有方格,求最大收益. 输入 ...
- POJ1743 Musical Theme(二分+后缀数组)
题目大概是给n个数组成的串,求是否有多个“相似”且不重叠的子串的长度大于等于5,两个子串相似当且仅当长度相等且每一位的数字差都相等. 这题是传说中楼教主男人八题之一,虽然已经是用后缀数组解决不可重叠最 ...
- 【Uva 11604 编码都有歧义了】
·你的目的就是要让编码有歧义,这就美妙了. ·英文题,述大意: 给出n个模板字符串,询问是否存在一个字符串,使得用模板串(随便你用多少个)来拼凑这个串,能够至少有两种拼法.如果有,就输出“ ...
- bzoj1493[NOI2007]项链工厂 线段树
1493: [NOI2007]项链工厂 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 1712 Solved: 723[Submit][Status] ...
- springboot由于mysql表类型导致的 setRollbackOnly() 事务不回滚
在SpringBoot 中,使用事务非常简单,只需在方法上面加入 @Transactional 注解就可以实现.也可加在类上,此时则类中所有方法都支持事务. 而当我使用下面代码时,发现事务却没有回滚 ...
- tensorflow deepmath:基于深度学习的自动化数学定理证明
Deepmath Deepmath项目旨在改进使用深度学习和其他机器学习技术的自动化定理证明. Deepmath是Google研究与几所大学之间的合作. 免责声明: 该存储库中的源代码不是Google ...
- 未能加载 global.asax的类的解决方案
“/suitecallback”应用程序中的服务器错误. 分析器错误 说明: 在分析向此请求提供服务所需资源时出错.请检查下列特定分析错误详细信息并适当地修改源文件. 分析器错误消息: 未能加载类型“ ...
- A quike guide teaching you how to use matlab to read netCDF file and plot a figure
1. Preparation 2. A brief introduce to netCDF. 4 3. Data Structure. 4 3.1 Attrib ...
- linux 3.10 缺页异常(TLB_invalid)通用处理框架
- DOS/Windows 文本格式与 Unix 文本各式转换
命令简介: dos2unix是将Windows格式文件转换为Unix.Linux格式的实用命令.Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2 ...