分布式内存文件系统:Tachyon
分布式内存文件系统:Tachyon
杨尚川 发表于3年前
分布式内存文件系统:Tachyon
  • 发表于 3年前
  • 阅读 1068
  • 收藏 22
  • 点赞 1
  • 评论 3

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存储在Tachyon里的文件。

Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存储在Tachyon里的文件。Tachyon是架构在最底层的分布式文件系统和上层的各种计算框架之间的一种中间件,其主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率,减少内存冗余,减少GC时间等。
20140808145905388.png

Tachyon架构 

       Tachyon的架构是传统的Master—Slave架构,这里和Hadoop类似,TachyonMaster里WorkflowManager是 Master进程,因为是为了防止单点问题,所以通过Zookeeper做了HA,可以部署多台Standby Master。Slave是由Worker Daemon和Ramdisk构成。Ramdisk使用off heap memory。Master和Worker直接的通讯协议是Thrift。

      下图是Tachyon的架构

    20140808182040308.png

Fault Tolerant

     Tachyon的容错机制是怎么样的呢?

     Tachyon使用lineage这个我们在Spark的RDD里已经很熟悉的概念,通过异步的向Tachyon的底层文件系统做Checkpoint。

     当我们向Tachyon里面写入文件的时候,Tachyon会在后台异步的把这个文件给checkpoint到它的底层存储,比如HDFS,S3.. etc...

     这里用到了一个Edge的算法,来决定checkpoint的顺序。

     比较好的策略是每次当前一个checkpoint完成之后,就会checkpoint一个最新生成的文件。当然像Hadoop,Hive这样的中间文件,需要删除的,是不需要checkpoint的。

     如下图所示

     20140808175651860.png

    

    关于重新计算时,资源的分配策略:

    目前Tachyon支持2种资源分配策略:

    1、优先级的资源分配策略

    2、公平调度的分配策略

    20140808181858939.png


总结

    Tachyon是一个基于内存的分布式文件系统,通常位于分布式存储系统和计算框架之间,可以在不同框架之间共享内存,同时可以减少内存冗余和基于JVM内存计算框架的GC时间。

    Tachyon也有类似RDD的lineage概念,input文件和output文件都是会有lineage信息,这样来达到容错。并且Tachyon也利用lineage信息,异步的做checkpoint,文件丢失情况下,也能利用两种资源分配策略来优先计算丢失掉的资源。

项目地址:http://tachyon-project.org/index.html


共有 人打赏支持
杨尚川
粉丝 1048
博文 210
码字总数 1618030
作品 10
评论 (3)
宝贵
杨老师,请教个问题。tachyon是如何管理,自己的内存中的文件的,一般大数据情况下,可能上TB的数据,他是如何加载到内存中的,如何突破JVM的内存限制的。
杨尚川

引用来自“宝贵”的评论

杨老师,请教个问题。tachyon是如何管理,自己的内存中的文件的,一般大数据情况下,可能上TB的数据,他是如何加载到内存中的,如何突破JVM的内存限制的。
首先,数据不是只能存放在一台电脑的内存里面,而是能存放在多台电脑的内存里面。一台电脑的内存就能搞定的事,也就没必要用Tachyon了。 其次,对单台电脑来说,如果使用64位JDK,使用1EB内存都没问题。
martin416
你好,有个tachyon的问题想请教下:就是我在2个机器上建立了2个worker,分别分配了1G的大小,那我现在想导入一个1.5g的文件的话,目前只会在一个worker上占满1g,然后把剩下的0.5g放到underFS上去,我想问的是,怎么能够共用2个机器的worker,就是这1.5g的文件,有1g放在一个worker上,0.5g放在另外的一个worker上?我设置的BlockSize大小是512MB, 谢谢!
×
杨尚川
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: