Tachyon内存文件系统
来源:互联网 发布:it工作者 编辑:程序博客网 时间:2024/06/05 07:59
从软件栈的层次来看,Tachyon是位于现有大数据计算框架和大数据存储系统之间的独立的一层。它利用底层文件系统作为备份,对于上层应用来说,Tachyon就是一个分布式文件系统。
从Tachyon项目的介绍可以看到, tachyon解决Spark/MapReduce框架数据共享的性能问题。 大数据业务一般是一个任务流, 任务流由一组相互依赖的任务组成, 一个任务的输出往往是另外一组任务的输入, 任务间数据共享是一个强需求。 最常见的数据共享方式是HDFS, 这种方式性能低下, 主要问题有: (1) HDD或者是SSD带宽都比较有限, (2) HDFS三副本写入性能损失较大, (3) 文件可能被多次缓存, 浪费内存。 Tachyon的目标就是解决数据共享的性能问题, 解决方法也很极端 —— 内存单副本。 当然简单的内存单副本会导致数据丢失, Tachyon采用lineage数据恢复技术保证数据可靠性。 根据相关论文的测试数据, Tachyon的写性能是HDFS的110倍, 任务流执行时间降低到1/4。
如上图所示, tachyon介于存储系统和计算框架之间, 缓存计算任务读写的文件, 目前Tachyon支持HDFS, S3和GlusterFS这几个后端文件系统。 引入Tachyon后, Spark/MapReduce任务程序不需要修改, 但是Spark、MapReduce框架自身要做一个200~300行代码的小Patch, 因为计算框架在产生输出之前, 必须先将数据lineage关系告知Tachyon, Tachyon记录lineage信息到磁盘, 用于实现数据的故障恢复。
从之前的系统架构图中也可看出,Master支持使用ZooKeeper进行容错。同时,Master中保存的元数据使用Journal进行容错,具体包括Editlog——记录所有对元数据的操作,以及Image——持久化元数据信息。此外,Master还对各个Worker的状态进行监控,发现Worker失效时会自动重启对应的Worker。
对于具体的文件数据,使用血统关系(Lineage)进行容错。文件元数据中记录了文件之间的依赖关系,当文件丢失时,能够根据依赖关系进行重计算来恢复文件数据。
在Tachyon中,心跳(HeartBeat)用于两个方面:Master, Worker, Client之间的定期通信;Master, Worker自身的定期状态自检。具体地:
- Client向Master发送心跳信号:表示Client仍处于连接中,Client释放连接后重新连接会获得新的UserId
- Client向Worker发送心跳信号:表示Client仍处于连接中,释放连接后Worker会回收该Client的用户空间
- Worker自检,同时向Master发送心跳信号:Worker将自己的存储空间信息更新给Master(容量,移除的块信息),同时清理超时的用户,回收用户空间
- Master自检:检查所有Worker的状态,若有Worker失效,会统计丢失的文件并尝试重启该Worker
- Tachyon 分布式内存文件系统
- Tachyon 分布式内存文件系统
- 分布式内存文件系统Tachyon
- 分布式内存文件系统:Tachyon
- 分布式内存文件系统Tachyon
- 分布式内存文件系统:Tachyon
- Tachyon内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- Tachyon:Spark生态系统中的分布式内存文件系统
- 关于C#窗体中的三类坐标系
- hdu 3524 Perfect Squares(找规律,循环节,快速幂取模)
- JAVA中 byte[]数组如何转为InputStream
- CentOS7 修改网卡名称为eth0 & 在VMWare中添加多网卡配置
- Android 轻松实现仿淘宝地区选择
- Tachyon内存文件系统
- MySQL创建复合主键
- openSUSE vsftpd 搭建
- bootstrap学习总结
- 移动端开发的一些技巧
- csdn待改进点之6------>重新编辑原创博文并发表后, 摘要还是旧摘要
- "计算器算法"(含括号匹配,小数点)-之高效,通俗易懂详细解析.
- 对象引用与对象的区别
- 列表的刷新&后台Service&来电拦截 反射+aidl&短信 拦截