百度美國硅谷研發(fā)中心高級架構師劉少山——Fast big data analytics with Spark on Tachyon

百度美國硅谷研發(fā)中心高級架構師劉少山

  Tachyon是一個分布式的內存文件系統(tǒng),可以在集群里以訪問內存的速度來訪問存在Tachyon里的文件。Tachyon是架構在分布式文件存儲和上層各種計算框架之間的中間件,主要負責將那些不需要落到DFS里的文件,落到分布式內存文件系統(tǒng)中,從而達到共享內存,以提高效率。1月10日下午的最后一場分享中,劉少山帶來了一場Tachyon的深入解析。

  Tachyon和Spark

Tachyon和Spark

  劉少山表示,在Spark使用過程中,用戶經(jīng)常困擾于3個問題:首先,兩個Spark 實例通過存儲系統(tǒng)來共享數(shù)據(jù),這個過程中對磁盤的操作會顯著降低性能;其次,因為Spark崩潰所造成的數(shù)據(jù)丟失;最后,垃圾回收機制,如果兩個Spark實例需求同樣的數(shù)據(jù),那么這個數(shù)據(jù)會被緩存兩次,從而造成很大的內存壓力,更降低性能。

  使用Tachyon,存儲可以從Spark中分離處理,讓其更專注于計算,從而避免了上述的3個問題。

  Tachyon架構

\

  劉少山從Spark的角度分享了Tachyon的部署。在與Spark搭配使用時,系統(tǒng)會建立一個Tachyon的job,通過Tachyon Client來訪問同一個機器上的Tachyon Worker,也就是機器上的內存。而Tachyon Client則會與Tachyon Master交互,來清楚每個分節(jié)點所包含的數(shù)據(jù)。由此可見,在整個Tachyon 系統(tǒng)中,Master、Client和Worker為最重要的三個部分。

  Tachyon Master。Master主要部件是Inode和Master Worker Info:Inode會負責系統(tǒng)的監(jiān)視,Master Worker Info則存儲了所有Worker的信息。

  Tachyon Worker。Worker主要負責存儲,其中Worker Storage是最主要的數(shù)據(jù)結構,包含Local data folder和Under File System兩個部分。其中Local data folder表示存在本地的Tachyon文件,Under File System則負責從HDFS中讀取Worker中未發(fā)現(xiàn)的數(shù)據(jù)。

  Tachyon Client。Client為上層用戶提供了一個透明的機制,其TachyonFS接口負責數(shù)據(jù)請求。每個Client中有多個Tachyon File,其中Block In Stream負責文件讀?。↙ocal Block In Stream負責本地機器讀取,Remote Block In Stream則負責讀取遠程機器);Block Out Stream主要負責將文件寫到本地機器上。在Client上,Master Client會與Master交互,Worker Client則與Client交互。

  Tachyon在百度

  為什么要使用Tachyon,劉少山指出,在百度,計算集群和存儲集群往往不在同一個地理位置的數(shù)據(jù)中心,在大數(shù)據(jù)分析時,遠程數(shù)據(jù)讀取將帶來非常高的延時,特別是ad-hoc查詢。因此,將Tachyon作為一個傳輸緩存層,百度通常會將之部署在計算集群上。首次查詢時,數(shù)據(jù)會從遠程存儲取出,而在以后的查詢中,數(shù)據(jù)就會從本地的Tacnyon上讀取,從而大幅的改善了延時。

Tachyon在百度

  在百度,Tachyon的部署還處于初始階段,大約部署了50臺機器,主要服務于ad-hoc查詢。

  實踐中遭遇的挑戰(zhàn)

  通過劉少山了解到,Tachyon的使用過程并不是一帆風順,比如:因為Tachyon需求對Block完全讀取,從而可能造成Blocks并未被緩存;有時候,雖然scheduler已經(jīng)確認了數(shù)據(jù)存在本地,Spark workers仍然從遠程blocks讀取,而緩存命中率也只有可憐的33%(如果你需要的是2號block,Tachyon會分別從1、2、3號block讀取,從而將block讀取了3份)。因此,劉少山表示,如果要使用好Spark與Tachyon,一定要對用例和Tachyon進行充分的了解。

  分享最后,劉少山還介紹了Hierarchical Storage Feature特性以及百度未來的工作,其中包括緩存替換策略等。

責任編輯:admin