歡迎光臨
每天分享高質量文章

如何利用Alluxio實現資料湖方案

Gartner認為資料湖是原始資料儲存實體的集合,資料分析師利用資料提煉、分析技術來洞察和探索資料價值,資料湖至少具備以下特性:

特性1:資料的集中存放管理。資料湖是存放所有所需資料的地方,包括來自傳統資料庫的結構化資料和非結構化的文本資料,企業內部生成的資料、外部資料,媒體資料傳感器和遙測資料等。

特性2:強大的交叉分析能力。資料湖可以看做是一個大資料分析平臺也可以用於資料分析以及找到資料新的關聯性。

特性3:為商業個體提供所需資料的最優解。資料湖也提供了一個商業個體搜尋真正需要的資料組合的平臺。

資料湖資料可以在資料湖本地儲存、計算可以給資料倉庫提供資料源,也可以去直接對接大資料平臺直接讀取、分析、儲存,另外通過Edge節點實現流動或上雲。

隨著資料湖概念流行,資料湖的方案也層出不窮。今天,重點討論如何Alluxio實現資料湖解決方案(文章來源 https://zhuanlan.zhihu.com/p/34973460 )。

理解在分析儲存於資料倉庫的結構化大資料時Alluxio所帶來的益處。

  • 使用配置來整合資料儲存,而不是ETL

  • 在檔案系統和物件儲存之間統一大資料檔案

  • 對重要和經常使用的資料提供按需快速本地訪問,不保留永久副本

  • 通過刪除資料副本和將資料遷移到商用儲存來降低儲存成本

1.摘要

問題描述:對儲存在不同倉庫中的結構化大資料進行分析是大型企業面臨的挑戰

  • 許多大型企業都有結構化大資料,這些資料通過多種儲存技術如HDFS、物件儲存和NFS等被儲存在不同的倉庫中。

  • 商業用戶需要通過這些倉庫訪問資料來執行高性能的查詢並獲得有意義的洞察力。

傳統方法:資料湖

  • 資料湖是解決這個問題的傳統方法,它提供一個單一系統,可以訪問相關資料。

  • 傳統方式創建的資料湖是資源密集型,需要代價很高的永久資料拷貝並且在資料創建和分析之間造成了延遲。

  • 隨著時間的推移,業務線可能會創建各自獨立的資料湖,從而創建了使用不兼容的儲存技術實現的資料倉庫。

  • 大型企業也可能會部署一種“資料湖的資料湖”,以便在多個業務線之間訪問資料,從而創建另一個資料副本。

  • 團隊可能會不斷嘗試新的儲存和計算技術,從而增加了資料管理的難度。

新方案:Alluxio虛擬分佈式檔案系統

  • Alluxio是第一個在檔案系統和物件儲存之間統一大資料檔案的虛擬化儲存技術。

  • 作為一個“虛擬資料湖”,應用程式可以訪問在Alluxio全域性命名空間中的檔案,就好像這些檔案在一個傳統的Hadoop檔案系統或物件儲存中一樣。

  • Alluxio提供了按需快速本地訪問重要和頻繁使用的資料,不需要維護一個永久的副本。快取的只是資料塊,而不是整個檔案。

  • 企業可以通過將更多的資料遷移到商用儲存中來減少儲存開銷。

  • 底層儲存通過使用配置而不是ETL來整合。資料存在它的源系統中,有效地消除了過時資料的問題。

  • 開發者使用工業標準接口(包括HDFS和S3A)與Alluxio進行交互。Alluxio系統的插件化架構能夠支持未來的出現的接口訪問技術。

  • 可擴展性、靈活性、安全性和容錯性已經在系統中被原生地設計出來了。

代碼示例:包括一個技術示例,用於在跨多個儲存集群的表中使用Spark SQL執行和持久化SQL join。

2. 介紹

隨著資料量的增長,大型企業正在採用大資料技術來處理涉及PetaByte規模的結構化和非結構化資料。大資料通常儲存在許多系統和業務單元中。企業要求技術團隊以高性能和成本有效的方式在這些系統中提供統一的、聚合的資料視圖。

這篇文章介紹了Alluxio和它如何獨特地解決了結構化大資料統一管理和訪問的難題。

3. 統一大資料的傳統方法

當大型企業不能保證其大資料存在於一個單源系統或資料湖中時,企業就需要解決大資料統一訪問的難題。這通常是通過自定義應用層解決方案或創建資料湖來解決的。事實上,這些解決方案通常會很困難。

自定義解決方案

  • 需要編寫和維護自定義的應用層代碼,這項工作是勞動密集型的並且易於中斷。

  • 沒有快取,這對於提升查詢性能是一個重要的障礙。

傳統的資料湖

  • 傳統的資料湖是資源密集型的,並且需要維護永久的資料副本,這是非常昂貴的。

  • 每次複製資料時,都會引入延遲,而且用於分析的資料的版本不一定是最新的。

  • 隨著時間的推移,業務線可能會創建各自獨立的資料湖,從而創建了使用不兼容的儲存技術實現的資料倉庫。

4. 大資料Alluxio之道

Alluxio是世界上第一個記憶體級速度的虛擬分佈式檔案系統。它統一了資料訪問並且連接了計算框架和底層的儲存系統。應用程式只需要連接到Alluxio就可以訪問儲存在任何底層儲存系統中的資料。此外,Alluxio架構能夠以記憶體速度訪問資料,提供了最快的I/O。

在大資料生態系統中,Alluxio位於計算和儲存中間。它可以為生態系統帶來顯著的性能提升,尤其是跨資料中心和可用性區域。Alluxio是Hadoop和物件儲存兼容的,並且支持對底層儲存進行讀寫。現有的資料分析應用程式,如Hive、HBASE和Spark SQL,可以在不更改任何代碼的情況下運行在Alluxio上。

Alluxio的益處

  • 統一訪問:充當一個“虛擬資料湖”。檔案可以在Alluxio全域性命名空間中被訪問,就好像它們儲存在一個單系統中。

  • 性能:對重要頻繁使用的資料提供快速本地訪問,而不需要維護所有資料的永久副本。Alluxio只智慧地快取所需的資料塊,而不是整個檔案。

  • 靈活性:Alluxio中的資料可以在不同的工作負載之間被共享,不僅是查詢還可以用於批量分析,機器學習和深度學習。

  • 儲存開銷最優化:透明地從源系統直接讀寫資料,因此不需要創建永久的資料副本。Alluxio的內置快取可以:

  • 利用計算節點上未使用的RAM和磁盤儲存來減少硬體開銷。

  • 使企業能夠將更多的資料遷移到更低成本的商用儲存中。

  • 配置驅動:使用配置整合底層儲存,而不是ETL。

  • 更現代靈活的架構:促進計算和儲存的分離。即插即用的系統架構能夠支持未來的技術。

  • 沒有產商鎖定:支持工業標準接口,包括HDFS和S3A。

  • 維護企業資料安全和管理:與現有的企業系統集成以支持統一的資料管理。

Alluxio提供的創新功能

全域性命名空間:用戶以一個單機虛擬檔案系統中的掛載點的方式與底層儲存進行交互,從而簡化了訪問。

服務器端API轉換:用戶通過HDFS或S3A來與Alluxio進行通信。但是,底層儲存系統不需要本地支持HDFS或S3A。任何具有兼容接口的儲存系統都可以作為底層儲存被掛載,並且Alluxio使得服務器端API和應用程式選擇的接口的轉換變得容易。通過Alluxio的模塊化架構也可以添加新的自定義接口。Alluxio的轉換能力提升了你的企業架構的互通性並且簡化了開發。

兼容的底層儲存接口:HDFS,NFS,Amazon S3A,Azure Blob Storage或Google Cloud Storage。

帶內快取:快取對用戶是帶內或透明的,並使用集中管理策略進行控制。用戶不需要付出任何努力就可以從改進的性能中獲益,並且管理是有組織地進行維護。

樣本用例:在這個示例企業中,與客戶交互相關的所有資料位於兩個不同的系統中:銷售系統包含客戶所購買的所有產品的信息,客戶支持系統包含客戶記錄的所有支持案例信息。這兩個系統是相互孤立的,但是為了瞭解客戶的所有交互情況,必須聯合這兩個孤立系統進行查詢,並將結果以客戶視圖的方式提供給用戶。

統一查詢:一旦底層儲存系統通過Alluxio進行統一後,SQL引擎就可以和底層表進行交互,就好像它們是單個系統的一部分一樣

5. 性能和儲存成本

大多數情況下,在一次分析中一個語料庫中只有一部分資料被使用。這個比例通常不到20%。傳統地,企業必須在對重要且經常使用的資料提供快速訪問和對所有資料提供統一訪問之間進行權衡,這會增加技術預算的重大成本。

Alluxio在允許對企業資料進行有效統一訪問的同時,也提供了按需快速本地訪問分析使用的資料。作為一個虛擬檔案系統,Alluxio的全域性命名空間允許用戶瀏覽並與被掛載系統中的檔案元資料進行交互。但是,只有當用戶需要它時才會訪問資料,並且可以透明地快取已請求的檔案資料。這種即時的設計理念使Alluxio能夠同時解決性能和成本方面的難題。

設計挑戰和快取

在設計高性能大資料架構時,必須解決現代基礎設施的兩個現實問題:

  • 資料區域性性;資料分佈在多個資料中心

  • 在廉價但緩慢的儲存中的冷資料

當對性能有需求時,Alluxio會用它的本地智慧快取來解決資料區域性性和低成本儲存的難題。快取的管理方式有兩種:


  • 動態使用升級、降級和TTL策略

  • 對於已知的經常訪問的資料或需要高速訪問SLAs預先設置策略

管理員決定Alluxio可用的快取空間大小來提供性能比的最佳成本,而智慧策略將透明地管理留在快取空間中的資料。當快取空間滿時,資料訪問繼續正常進行,而智慧快取優先處理資料。

使用Alluxio的完全集成快取,應用程式用戶能夠以一種透明的方式高速地訪問來自遠程或緩慢儲存系統的資料,同時允許企業控制儲存成本。

分層快取技術

Alluxio可以並存在資料中心或計算和作業執行的可用性區域中,並且可以安裝在現有的計算節點、專用節點或兩者結合。Alluxio的快取可以設置為RAM、SSD和HDD,通過配置為其預留空間。

用戶定義用於固定、多層升級/降級和TTL的策略。例如,一種常見的分層方法是:

預設情況下,資料被快取到頂層,並根據需要將資料驅逐到下一層。管理員可以控制這些全域性策略,還可以在底層儲存中設置定製的快取策略,從而更好地控制了Alluxio的儲存資源。如果授權,用戶也可以每次請求都指定快取改寫。

儲存成本優化

由於性能和互用性的考慮,現在CIOs通常必須選擇昂貴的儲存技術,而不是成本更低的替代方案。通過使用Alluxio,CIOs可以加速企業存檔策略,將更多的資料轉到低成本的儲存技術。


  • Alluxio的智慧快取提供了資料區域性性,以剋服低成本儲存的典型低性能。

  • 當被掛載到Alluxio中,利用HDFS或S3A接口進行資料訪問的應用程式可以訪問那些本地不支持這些接口的儲存技術。

  • 資料可以在儲存系統之間移動,而不需要在應用層進行任何的改變。

6. 企業級的考慮

PetaByte規模的資料:大多數大型企業都有PetaByte規模的結構化大資料。通常看到的邏輯大資料表都是TeraByte規模的。為了改進操作,這些大表通常被劃分為表分割槽檔案。大資料儲存系統(例如,HDFS和物件儲存)將大型檔案分割成MegaByte規模的資料塊。資料塊級儲存允許對大資料檔案進行細粒度控制並且最小化整個網絡的資料流。


Alluxio被設計成可以和HDFS和物件儲存無縫地工作,並且只透明地傳回滿足請求所需的塊。這保證了不會以I/O瓶頸或大規模資料移動為代價進行資料統一。


元資料的管理:Alluxio共享了一個在領先的大資料系統如HDFS和物件儲存中常見的基礎設計假設,即資料是不可變的,也就是說,它們一旦被寫入,就永遠不會被修改。不可變資料允許系統突破隨機寫入需求所造成的規模限制。


Alluxio引入了不可變資料以確保元資料與底層儲存的同步是一種低開銷操作。當新檔案被寫入時,如果通過Alluxio來添加,可以立即使用它們。檔案如果被添加到Alluxio外的底層儲存時,將根據用戶定義的元資料掃清策略來與Alluxio同步。在這兩種情況下,Alluxio中的元資料都保持同步,從而簡化了用戶的資料訪問。

安全性:對於大型企業來說,資料安全性是極其重要的。除了資料統一管理訪問之外,Alluxio還可以作為跨多個儲存系統的統一安全層。

用戶身份認證:在一個具有統一身份服務的企業中,Alluxio簡單地認為服務是真理的來源,並且不負責在多個服務之間統一身份。身份服務如LDAP,通過不同的身份認證和IAM協議連接到不同的儲存庫中。

如果一個企業組織沒有統一的身份認證服務,Alluxio會提供一個靈活的憑證管理方法,以實現多個底層儲存的安全連接。在Alluxio中,用戶身份認證是通過Kerberos實現的,這與底層儲存身份認證是分離的,而是使用底層儲存支持的身份認證方法實現的。

訪問控制:Alluxio提供了一個類似於當前POSIX-compliant模型的統一訪問控制模型。此外,它還添加了類UNIX的訪問控制串列(ACLs)來支持任何用戶或組的細粒度權限控制。


如果用戶在LDAP身份儲存中進行管理,Alluxio也可以與Active Directory和LDAP進行集成,以查詢用戶的組成員身份並實現訪問控制。

當訪問遠程安全的Hadoop集群中的資料時,Alluxio支持HDFS用戶模擬,這是一種安全的最佳實踐。通過模擬,Alluxio可以代表客戶端請求資料訪問。

這使得Hadoop集群能夠維護完整的用戶授權,並使Alluxio成為一個透明的資料代理。管理員使用現有的Hadoop工具如Cloudera Sentry和Apache Ranger來管理安全性。

加密:Alluxio支持掛載加密的資料源。由於Alluxio本身對資料塊中的具體內容不作語意結構感知,所以加密的資料不會影響Alluxio的核心操作。


例如,如果一個SQL引擎需要訪問加密的HDFS資料,Alluxio會模擬客戶端的用戶並代表用戶請求訪問。一旦授權,資料將被解密並以正常的形式傳回給用戶。如果同時啟用了快取,資料將以未加密的方式儲存的Alluxio中。還可以啟用Kerberos以進一步安全訪問。

如果資料還沒有在底層儲存中加密,或者如果快取在Alluxio需要加密,Alluxio也會代表客戶端應用支持加密、解密。即使加密不是由儲存系統本身進行全域性配置的,也可以將由Alluxio加密的資料儲存回底層儲存中。

靈活性:許多大型企業都希望利用靈活性和集中性來優化它們的資源使用。為了實現這種轉變,應用程式堆棧正在被重新設計,以分離計算和儲存。Alluxio的設計促進了這種分離的關註。

系統本身也被設計成可以隨著資源需求的變化而上下伸縮,並且可以通過中間層的合作關係與中間層DC/OS和Kubernetes等企業資源管理人員一起使用。在這些環境下,可以使用Alluxio來統一駐留在這些集群之外的資料。

容錯:Alluxio是一個具有內置容錯功能的分佈式可擴展系統。任何組件都沒有單點故障,並且在一個組件崩潰的情況下,也不會有資料丟失。建議使用多master方法來部署Alluxio。


底層儲存也可以通過Alluxio底層儲存複製特性來複制,這一特性支持Alluxio集群之外的高可用性需求。

7. 結論

隨著大型企業努力應對日益增長的大規模資料、越來越多的儲存技術和激增的應用程式,大資料的統一正成為使用傳統方法管理的難題。

Alluxio是第一個將大資料統一起來的儲存虛擬化技術,不需要擁有自己的永久副本並且充當一個“虛擬資料湖”。應用程式使用工業標準接口和一個全域性命名空間訪問Alluxio中的檔案,就像這些檔案在一個傳統的資料湖中一樣。Alluxio獨特之處在於底層儲存的集成是通過配置完成而不是通過ETL進行,並且資料駐留在它的源系統中,有效地消除了陳舊的資料。

Alluxio將更多的資料遷移到低成本的儲存中,並且提供快速本地訪問重要且頻繁使用的資料,從而允許企業優化儲存成本。所有的這些都是在可擴展的、安全和容錯的分佈式系統中實現的。

更多技術已經整理成電子書

十一期間優惠活動相詳細信息如下

(如滿足優惠條件下單可聯繫修改價格)

溫馨提示:

請搜索“ICT_Architect”“掃一掃”二維碼關註公眾號,點擊原文鏈接獲取更多電子書詳情

求知若渴, 虛心若愚

赞(0)

分享創造快樂