Tachyon:一個高性能、高容錯、基于內存的開源分布式存儲系統
原文 http://www.infoq.com/cn/news/2015/03/tachyon-distributed--system
從Tachyon的 官網 得知,Tachyon是一個高性能、高容錯、基于內存的開源分布式存儲系統,并具有類Java的文件API、插件式的底層文件系統、兼容Hadoop MapReduce和 Apache Spark 等特征。Tachyon能夠為集群框架(如Spark、MapReduce等)提供內存級速度的跨集群文件共享服務。Tachyon充分使用內存和文件對象之間的世代(Lineage)信息,因此速度很快,官方號稱 最高比HDFS吞吐量高300倍 。目前,很多公司(如Pivotal、EMC、紅帽等)已經在使用Tachyon,并且來自20個組織或公司(如雅虎、英特、紅帽等)的60多個貢獻者都在為其貢獻代碼。Tachyon是于 UC Berkeley 數據分析棧( BDAS )的存儲層,它還是Fedroa操作系統 自帶應用 。
Tachyon具有的重要特征如下:
- 類Java的文件API: Tachyon的原生API同Java的文件類非常相似,并提供了InputStream和OutputStream接口,還支持內存映射IO;
- 兼容MapReduce和Spark:Tachyon實現了Hadoop的FileSystem接口,因此,MapReduce和Spark無需做任何修改就可以使用Tachyon;
- 插件式的底層文件系統:Tachyon基于Hadoop并從底層重建了Hadoop平臺。Tachyon具有一個通用、方便于接入不同底層文 件系統的接口。目前支持的文件系統包括HDFS、S3、GlusterFS、單節點本地文件系統等,對其他文件系統的支持將很快實現。
- 支持本地原始表:Tachyon提供了對多列數據的本地支持,且提供了選擇項,以決定是否將Hot列放入內存以節省空間;
- 瀏覽文件系統的Web界面:用戶能夠通過Web界面瀏覽文件系統,尤其在Debug模式下,管理員還能夠查看每個文件的詳細信息,如文件位置、檢查點(Checkpoint)路徑等;
- 支持命令行交互:用戶能夠使用命令“./bin/tachyon tfs”同Tachyon進行交互,如往文件系統中復制數據以及從文件系統往外復制數據;
- 高容錯性:Tachyon具有良好的容錯機制,Master和Worker都有自己的容錯方式。Master使用 ZooKeeper 進行容錯,Master中保存的元數據使用Journal進行容錯,Master還對各個Worker的狀態進行監控,發現Worker失效時會自動重啟對應的Worker。對于具體的文件數據,Tachyon使用世代關系進行容錯。
Tachyon采用了Master-Worker模式,運行中的Tachyon系統由一個Master和多個Worker構成。Tachyon Master管理全部文件的元數據信息,同時也負責監控各個Tachyon Worker的狀態。為了高效地對文件進行管理,Tachyon文件在內存中按塊組織。文件和塊信息保存在Master端,每個Worker以塊為單位進 行存儲和管理。Tachyon的架構如下圖所示:
Tachyon誕生于 UC Berkeley的AMPLab ,由該實驗室的計算機在讀博士李浩源初創,并基于 Apache License 2.0 開源協議發布,代碼托管在 GitHub ,其當前最新版本為 0.6.1 。去年10份,李浩源在接受InfoQ采訪時曾表示:
長期來講,他們對待Tachyon會像對待Apache Mesos和Apache Spark一樣,Tachyon也會進入Apache軟件基金會,這里歡迎更多的開發者加入。
近日,從華爾街日報 消息 得知,Tachyon獲得了硅谷風投 A16Z 的750萬美元A輪投資。AMPLab的項目還包括與Hadoop相似、啟用了內存分布數據集的開源集群計算環境 Spark 、類似于基于鍵/值存儲的SQL查詢語言 PIQL 、基于分布式系統的機器學習系統 MLBase 、多核和大型SMP系統的操作系統 Akaros 、低延遲計算集群調度系統 Sparrow 等。此外,Tachyon官網還提供了相關文檔,如 用戶文檔 、 開發者文檔 等。更多關于Tachyon的信息,讀者可以登錄其官網或其GitHub提供的 Wiki頁面 查看。