日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

分布式文件系统之Tachyon是什么?

發布時間:2024/2/28 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式文件系统之Tachyon是什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Tachyon

概念:

Tachyon是一個高性能、高容錯、基于內存的開源分布式存儲系統??,并具有類Java的文件API、插件式的底層文件系統、兼容Hadoop MapReduce和Apache Spark等特征。Tachyon能夠為集群框架(如Spark、MapReduce等)提供內存級速度的跨集群文件共享服務。Tachyon充分使用內存和文件對象之間的世代(Lineage)信息,因此速度很快,官方號稱最高比HDFS吞吐量高300倍。

本質上,Tachyon是個分布式的內存文件系統,它在減輕Spark內存壓力的同時賦予了Spark內存快速大量數據讀寫的能力。Tachyon把存儲與數據讀寫的功能從Spark中分離,使得Spark更專注在計算的本身,以求通過更細的分工達到更高的執行效率。

架構設計:

Tachyon的架構是傳統的Master—Slave架構,這里和Hadoop(Hadoop也是master-slave結構,Hadoop主要有兩個結構NameNode和DateNode),Tachyon有三個主要的部件:Master, Client,與Worker。在每個Spark Worker節點上,都部署了一個Tachyon Worker,Spark Worker通過Tachyon Client訪問Tachyon進行數據讀寫。所有的Tachyon Worker都被Tachyon Master所管理,Tachyon Master通過Tachyon Worker定時發出的心跳來判斷spark worker是否已經崩潰以及每個spark worker剩余的內存空間量

?

Tachyon Master的結構

?

首先:Tachyon Master是個主管理器,處理從各個Tachyon Client發出的請求,這一系列的工作由Service Handler來完成。這些請求包括:獲取Worker的信息,讀取File的Block信息, 創建File等等;

其次:Tachyon Master是個Name Node,存放著所有文件的元信息,每個文件的信息都被封裝成一個Inode,每個Inode都記錄著屬于這個文件的所有Block信息。在Tachyon 中,Block是文件系統存儲的最小單位,假設每個Block是256MB,如果有一個文件的大小是1GB,那么這個文件會被切為4個Block。每個 Block可能存在多個副本,被存儲在多個Tachyon Worker中,因此Master里面也必須記錄每個Block被存儲的Worker地址;

第三:Tachyon Master同時管理著所有的Worker,Worker會定時向Master發送心跳通知本次活躍狀態以及剩余存儲空間。Master是通過 Master Worker Info去記錄每個Worker的上次心跳時間,已使用的內存空間,以及總存儲空間等信息。

?

Tachyon worker的結構

Tachyon Worker的結構,它主要負責存儲管理:

首先:Tachyon Worker的Service Handler處理來自Client發來的請求,這些請求包括:讀取某個Block的信息,緩存某個Block,鎖住某個Block,向本地內存存儲要求 空間等等。

第二:Tachyon Worker的主要部件是Worker Storage,其作用是管理Local Data(本地的內存文件系統)以及Under File System(Tachyon以下的磁盤文件系統,比如HDFS)。

第三:Tachyon Worker還有個Data Server以便處理其他的Client對其發起的數據讀寫請求。當由請求達到時,Tachyon會先在本地的內存存儲找數據,如果沒有找到則會嘗試去其 他的Tachyon Worker的內存存儲中進行查找。如果數據完全不在Tachyon里,則需要通過Under File System的接口去磁盤文件系統(HDFS)中讀取

Tachyon client的結構

它主要功能是向用戶抽象一個文件系統接口以屏蔽掉底層實現細節。

首先,Tachyon Client會通過Master Client部件跟Tachyon Master交互,比如可以向Tachyon Master查詢某個文件的某個Block在哪里。Tachyon Client也會通過Worker Client部件跟Tachyon Worker交互, 比如向某個Tachyon Worker請求存儲空間。在Tachyon Client實現中最主要的是Tachyon File這個部件。在Tachyon File下實現了Block Out Stream,其主要用于寫本地內存文件;實現了Block In Stream主要負責讀內存文件。在Block In Stream內包含了兩個不同的實現:Local Block In Stream主要是用來讀本地的內存文件,而Remote Block In Stream主要是讀非本地的內存文件。請注意,非本地可以是在其它的Tachyon Worker的內存文件里,也可以是在Under File System的文件里。

設計初衷:

分布式內存計算的模式也是一柄雙刃劍,在提高性能的同時不得不面對分布式數據存儲所產生的問題,具體問題主要有以下幾個

1)當兩個Spark作業需要共享數據時,必須通過寫磁盤操作。比如:作業1要先把生成的數據寫入HDFS,然后作業2再從HDFS把數據讀出來。在此,磁盤的讀寫可能造成性能瓶頸。

2)由于Spark會利用自身的JVM對數據進行緩存,當Spark程序崩潰時,JVM進程退出,所緩存數據也隨之丟失,因此在工作重啟時又需要從HDFS把數據再次讀出。

3)當兩個Spark作業需操作相同的數據時,每個作業的JVM都需要緩存一份數據,不但造成資源浪費,也極易引發頻繁的垃圾收集,造成性能的降低。

?

?

?

部署方式:

部署結構:

?

?

?

Tachyon被部署在計算平臺(Spark,MR)之下以及存儲平臺(HDFS, S3)之上,通過全局地隔離計算平臺與存儲平臺, Tachyon可以有效地解決上文列舉的幾個問題,:

1)當兩個Spark作業需要共享數據時,無需再通過寫磁盤,而是借助Tachyon進行內存讀寫,從而提高計算效率。

2)在使用Tachyon對數據進行緩存后,即便在Spark程序崩潰JVM進程退出后,所緩存數據也不會丟失。這樣,Spark工作重啟時可以直接從Tachyon內存讀取數據了。

3)當兩個Spark作業需要操作相同的數據時,它們可以直接從Tachyon獲取,并不需要各自緩存一份數據,從而降低JVM內存壓力,減少垃圾收集發生的頻率。

?

?

使用方法:

1、類Java的文件API

?

2、假設一個Spark作業發起了一個讀請求,它首先會通過Tachyon Client去Tachyon Master查詢所需要的Block所在的位置。如果所在的Block在本地的Tachyon Worker里,此Client則會通過Local Block In Stream向本地的Tachyon Worker發出讀請求,如果所在的Block不在本地的Tachyon Worker里,此Client則會通過Remote Block In Stream向別的Tachyon Worker發出讀請求,同時在Block讀入的過程中,Client也會通過Block Out Stream把Block寫入到本地的內存存儲里,這樣就可以保證下次同樣的請求可以由本機完成。

?

3、受益于Tachyon良好的設計和兼用性,用戶可以很方便地將現有的利用HDFS進行存儲的程序移植至Tachyon,只需要簡單的兩步:添加配置項,修改文件路徑。

?

3.1 對于MapReduce程序

添加配置項<”fs.tachyon.impl”, ” tachyon.hadoop.TFS”>,可以在core-site.xml文件中添加,也可以在程序中使用Configuration.set()方法添加。將原有的”hdfs://ip:port/path”路徑更改為”tachyon://ip:port/path”。

?

需要注意的是,由于Hadoop默認不依賴于Tachyon,還要將Tachyon的jar包添加至$HADOOP_CLASSPATH中。

?

3.2 對于Spark程序

同樣地,添加配置項<”fs.tachyon.impl”, ” tachyon.hadoop.TFS”>。將原有的”hdfs://ip:port/path”路徑更改為”tachyon://ip:port/path”。

?

額外地,添加配置項<”spark.tachyonStore.url”, “tachyon://ip:port/”>后,能夠使用”rdd.persist(StorageLevel.OFF_HEAP)”語句將RDD緩存至Tachyon中以減少Java GC的開銷。

?

3.3 其他使用方式

為了方便用戶使用,Tachyon還提供了命令行工具,能夠對Tachyon進行簡單的交互

?

tachyon tfs cat|ls|mkdir|rm|copyFromLocal|…

?

此外,Tachyon也有自己的一套API,使用該API能夠很靈活地訪問Tachyon文件系統,并充分利用Tachyon的各個特性以獲得最佳性能。

?

TachyonFS.createFile|delete|mkdir|rename|…

?

TachyonFile.getInStream|getOutStream|getPath|…

?

應用場景:

由于其解決分布式內存計算的分布式數據存儲所產生的的問題。所以應用場景基于Spark進行大多數批處理工作。

目前,很多公司(如Pivotal、EMC、紅帽等)已經在使用Tachyon,并且來自20個組織或公司(如雅虎、英特、紅帽等)的60多個貢獻者都在為其貢獻代碼。Tachyon是于UC Berkeley數據分析棧(BDAS)的存儲層,它還是Fedora操作系統自帶應用。

?

部分摘自 一個有理想的代碼狗:https://baijiahao.baidu.com/s?id=1590729598735273612&wfr=spider&for=pc?

總結

以上是生活随笔為你收集整理的分布式文件系统之Tachyon是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。