分布式內存文件系統:Tachyon
Tachyon是一個分布式內存文件系統,可以在集群里以訪問內存的速度來訪問存在tachyon里的文件。把Tachyon是架構在最底層的分布式文件存儲和上層的各種計算框架之間的一種中間件。主要職責是將那些不需要落地到DFS里的文件,落地到分布式內存文件系統中,來達到共享內存,從而提高效率。同時可以減少內存冗余,GC時間等。

Tachyon架構
Tachyon的架構是傳統的Master—slave架構,這里和Hadoop類似,TachyonMaster里WorkflowManager是
Master進程,因為是為了防止單點問題,通過Zookeeper做了HA,可以部署多臺Standby Master。Slave是由Worker
Daemon和Ramdisk構成。這里個人理解只有Worker
Daemon是基于JVM的,Ramdisk是一個off heap memory。Master和Worker直接的通訊協議是Thrift。
下圖來自Tachyon的作者Haoyuan Li:

三、Fault Tolerant
Tachyon是一個分布式文件存儲系統,但是如果Tachyon里的容錯機制是怎么樣的呢?
Tachyon使用血統這個我們在Spark里的RDD里已經很熟悉了,這里也有血統這一概念。會使用血統,通過異步的向Tachyon的底層文件系統做Checkpoint。
當我們向Tachyon里面寫入文件的時候,Tachyon會在后臺異步的把這個文件給checkpoint到它的底層存儲,比如HDFS,S3.. etc...
這里用到了一個Edge的算法,來決定checkpoint的順序。
比較好的策略是每次當前一個checkpoint完成之后,就會checkpoint一個最新生成的文件。當然想Hadoop,Hive這樣的中間文件,需要刪除的,是不需要checkpoint的。
下圖來自Tachyon的作者Haoyuan Li:

關于重新計算時,資源的分配策略:
目前Tachyon支持2種資源分配策略:
1、優先級的資源分配策略
2、公平調度的分配策略

四、總結
Tachyon是一個基于內存的分布式文件系統,通常位于分布式存儲系統和計算框架直接,可以在不同框架內共享內存,同時可以減少內存冗余和基于Jvm內存計算框架的GC時間。
Tachyon也有類似RDD的血統概念,input文件和output文件都是會有血統關系,這樣來達到容錯。并且Tachyon也利用血統關系,異步的做checkpoint,文件丟失情況下,也能利用兩種資源分配策略來優先計算丟失掉的資源。
項目地址:http://tachyon-project.org/index.html
項目地址:http://tachyon-project.org/index.html
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!