




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于Alluxio提升Spark和HadoopHDFS的系統性能與穩定性技術創新,變革未來內容Alluxio基本原理回顧與最新特性介紹基于Alluxio的Spark DataFrame/RDD性能調優基于Alluxio提升HDFS集群的性能和SLA穩定性總結BIG DATA ECOSYSTEM YesterdayBIG DATA ECOSYSTEM Today4BIG DATA ECOSYSTEM Issue5BIG DATA ECOSYSTEM With Alluxio6BIG DATA ECOSYSTEM With Alluxio7Alluxio是什么Alluxio是世界上第一個以內存為中
2、心 (memory-centric)的虛擬的分布式存儲系統。Alluxio介于計算框架和現有的存儲系統之間, 為大數據軟件棧帶來了顯著的性能提升。Alluxio的發展2012年12月,Alluxio(Tachyon)發布了第一個版本0.1.02017年1月,Alluxio的最新發布版本為1.4Alluxio的發展自2013年4月開源以來,已有超過100個組織機構的400多貢獻者參 與到Alluxio的開發中。包括阿里巴巴,Alluxio,百度,卡內基梅隆 大學,IBM,Intel,南京大學,Red Hat,UC Berkeley和Yahoo。活躍的開源社區Popular Open Source
3、 Projects Growth關于南大PASALab和我的貢獻情況INDUSTRY ADOPTION121314Alluxio整體架構Master-WorkerMaster管理全部元數據監控各個Worker狀態Worker管理本地MEM、SSD和HDDClient向用戶和應用提供訪問接口向Master和Worker發送請求Under File System用于備份Under File SystemMasterClient Worker1MEM SSD HDDnode 1Worker3MEM SSD HDDnode 3Worker2MEM SSD HDDnode 2Alluxio文件組織元數據
4、為Inode Tree形式樹狀結構文件和目錄都為一個Inode文件屬性構成Inode的基本信息:id、名稱、長度、創建/修改時間等塊信息備份信息/Dir0/Dir1/Dir2/File1File0name : File1 List : Block0, Block1, . checkPointPath : hdfs:/xxx:yyy/zzz.Alluxio讀寫行為使用讀寫類型控制數據的存儲層位置ReadType - 控制讀數據時的行為WriteType - 控制寫數據時的行為類型取值含義讀類型ReadTypeCACHE_PROMOTE(默認)如果讀取的數據塊在Worker上時,該數據塊被移動到W
5、orker的最高層。如果該數據塊不在本地Worker中,那么就將一個副本添加到本地Worker中。CACHE如果該數據塊不在本地Worker中,那么就將一個副本添加到本地Worker中。NO_CACHE不會創建副本。寫類型WriteTypeCACHE_THROUGH數據被同步地寫入到Worker和底層存儲系統。MUST_CACHE(默認)數據被同步地寫入到Worker,但不會寫入底層存儲系統。THROUGH數據被同步地寫入到底層存儲系統,但不會寫入Worker。ASYNC_THROUGH數據被同步地寫入到Worker,并異步地寫入底層存儲系統。Alluxio容錯機制Master支持使用ZooK
6、eeper啟動多個Master日 志 Journal : EditLog + ImageWorker由Master監控,失效時自動重啟備份Checkpoint & 世系關系 Lineage命令行接口運行方式bin/alluxio fs commandcatchmodcopyFromLocalcopyToLocalfileInfols路徑表示alluxio:/:/支持通配符 *,如:bin/alluxio fs rm /data/2014*mkdirmvrmtouchmountunmount文件系統API以Java API的方式提供Alluxio的訪問接口創建、寫文件FileSystem fs
7、= FileSystem.Factory.get(); AlluxioURI path = new AlluxioURI(/myFile); FileOutStream out = fs.createFile(path); out.write(.);out.close();讀文件FileSystem fs = FileSystem.Factory.get(); AlluxioURI path = new AlluxioURI(/myFile); FileInStream in = fs.openFile(path); in.read(.);in.close();最新版本Java API Doc
8、(/documentation/master/api/java/)兼容現有的Hadoop FileSystem接口在MapReduce、Spark等作業中以“alluxio:/”代替“hdfs:/”Alluxio-FUSE能夠在Linux的本地文件系統中掛載Alluxio利用Linux libfuse功能包掛載為Linux本地文件系統中的一個目錄方便快捷的使用方式$ alluxio-fuse.sh mount 像使用本地文件系統一樣使用支持的操作openreadlseekwriteKernelUserspacecat /tmp/alluxio-fileglibcVFSFUSENFSExt4.g
9、libclibfuseAlluxio鍵值存儲庫APIAlluxio的鍵值(key-value)存儲功能創建一個鍵值存儲庫并且把鍵值對放入其中鍵值對放入存儲后是不可變的鍵值存儲庫完整保存后,打開并使用該鍵值存儲庫API樣例KeyValueSystem kvs = KeyValueSystem.Factory().create();KeyValueStoreWriter writer = kvs.createStore(new AlluxioURI(alluxio:/path/my-kvstore); writer.put(100, foo);writer.put(200, bar); write
10、r.close();KeyValueStoreReader reader = kvs.openStore( new AlluxioURI(alluxio:/path/kvstore/);reader.get(100);reader.get(“300”);/null reader.close();Alluxio KV Storebatch put K1 get 2 V1foo分層存儲為什么需要多級存儲?內存大小有限兩個概念StorageTier存儲層,對應存儲介質,如內存、SSD、硬盤StorageDir數據塊存放在Alluxio Worker的本地目錄,通常對應一塊磁盤設備一個StorageT
11、ier包含一個或多個StorageDir數據塊管理Allocator- 選擇分配哪個StorageDir里的空間GreedyAllocator、MaxFreeAllocator、RoundRobinAllocatorEvictor- 選擇撤銷哪個StorageDir里的哪些數據塊GreedyEvictor、LRUEvictor、LRFUEvictor、PartialLRUEvictor統一命名空間統一命名空間能夠將多個數據源中的數據掛載到Alluxio中多個數據源使用統一的命名空間用戶使用統一路徑訪問統一命名空間的適用場景將數據遷移至Alluxio將數據從原先基于磁盤的存儲遷移至Alluxio
12、,利用內存加速在應用中使用統一路徑訪問Alluxio和底層存儲系統管理不同數據源中的數據將數據從不同數據源遷移至Alluxio,利用內存加速在應用中使用統一路徑訪問不同數據源中的數據實現不同數據源之間的數據共享與計算框架相結合使用Alluxio作為計算框架的存儲系統Spark、Hadoop MapReduce、FlinkH20、Impala、不需改動現有應用源碼存儲路徑 “hdfs:/ip:port/xxx” - “alluxio:/ip:port/xxx”Zeppelin默認集成Alluxio,使用Alluxio作為解釋器安全性安全認證Alluxio能夠識別訪問用戶的身份,這是訪問權限以及加
13、密等其他安 全特性的基礎當用戶(客戶端)連接Alluxio(服務端)時,需要特定的用戶、密 碼或其他認證方式訪問權限控制以文件為粒度進行訪問權限控制類似POSIX標準的訪問權限模型用戶權限、用戶組權限、其他用戶權限讀r、寫w、執行xWeb界面Master WebUI例Worker WebUI例技術特點小結Co-located compute and data with memory-speed access to dataVirtualized different storage systems under a unified namespaceScale-out architectureFi
14、le system API, software only系統優勢小結UnificationNew workflows across any data in any storage systemPerformanceOrders of magnitude improvement in run timeFlexibilityChoice in compute and storage grow each independently, buy only what is neededAlluxio 1.4版本的重要新特性介紹優化Alluxio底層對象存儲API優化的對象存儲連接器Alluxio 1.4.
15、0在對象存儲上的小文件和小規模讀取的性能方面有了 重大改進。改進UFS API提升了對象存儲中獲取元數據的性能。簡化的對象存儲集成如今集成新的對象存儲只需要原先實現的方法中的一半即可。在源代碼行數方面,現在僅需要不到400行代碼即可完成新的對象存 儲的集成,不到原來的一半。Alluxio 1.4版本的重要新特性介紹文件系統原生REST接口新引入的REST接口提供了同Alluxio native Java API的對等性,其 目的是促進非Java環境與Alluxio的交互。REST接口通過Alluxio代理進程實現,該進程使用一個內部Alluxio Java客戶端代理REST接口和Alluxio
16、服務器之間的通信為了獲得最佳性能,推薦將Alluxio代理與Alluxio服務進程放在一起。這 可以讓非java應用以內存級的速度訪問Alluxio中的數據,同時最小化Alluxio代理和Alluxio服務之間額外網絡的開銷。Alluxio 1.4版本的重要新特性介紹數據包流(Packet Streaming)Alluxio 1.4.0引入了一種新的網絡傳輸協議,旨在充分利用Alluxio組件之間的可用網絡帶寬在標準網絡中高達2倍的IO性能改進,以及在高延遲吞吐量產品環境下取 得更好的結果減少了網絡傳輸期間使用的緩存,并且依賴于使用連續流傳輸協議取 代數據傳輸中的請求-響應協議通過使用這種方法
17、,能確保網絡管道持續飽和,因為我們不需要 發送周期性的額外數據請求Alluxio 1.4版本的重要新特性介紹支持Apache Hive(Contributed By PASALab)將Apache Hive集成運行在Alluxio上,具體看使用文檔 (/docs/master/en/Running-Hive- with-Alluxio.html)提升了與基于YARN的應用的集成工作支持在用戶/權限打開的模式下將YARN的應用運行在Alluxio上Alluxio 1.4版本的重要新特性介紹提升了Alluxio Master中的鎖管理機制使得基于MapReduce的計算框架能夠有更高并發的元數據操
18、作性能對緩慢底層文件系統進行元數據操作(例如在云存儲中進行重命名) 的性能能夠提升1個數量級左右指定層級寫操作用戶能夠將數據顯式地寫到Alluxio存儲層級中的指定層,而不是原 先默認的最頂層內容Alluxio基本原理回顧與1.4的最新特性介紹基于Alluxio的Spark DataFrame性能調優基于Alluxio提升HDFS集群的性能和SLA穩定性總結實驗環境Spark 2.0.0 + Alluxio 1.2.0Single worker: Amazon r3.2xlarge(61 GB MEM, 8- core CPU)Comparisons:AlluxioSpark Storage
19、Level: MEMORY_ONLYSpark Storage Level: MEMORY_ONLY_SERSpark Storage Level: DISK_ONLY19232502001501005000104050Time seconds2030DataFrame Size GBREADING CACHED DATAFRAME (PARQUET)Alluxio (textFile) MEMORY_ONLY_SERDISK_ONLY MEMORY_ONLY24050200250AlluxioNo Alluxio100150Time seconds新場景:READ 50 GB DATAFRA
20、ME(SSD)250250500125015001750AlluxioNo Alluxio7501000Time seconds新場景:READ 50 GB DATAFRAME(S3)10 x average speedup, 17x peak speedup內容Alluxio基本原理回顧與1.4的最新特性介紹基于Alluxio的Spark DataFrame/RDD性能調優基于Alluxio提升HDFS集群的性能和SLA穩定性總結使用Alluxio提升HDFS集群的性能和SLA穩定性Alluxio可以給與HDFS共同部署的計算集群的兩 大好處提升高達10倍的性能提升性能的高可預測性使得SLA(service-level agreement服務級 別協議)很容易滿足例:作業運行時間的變化范圍從100秒以上縮短至2秒場景 1周作業和月作業都是IO密集型結論:Alluxio對這兩種作業的性能提升都很明顯。在不使用Alluxio的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論