Alluxio - 爲機器學習和統計分析而生的數據編排工具

今天給大家分享一款數據編排工具,名字叫做Alluxio,不知道大家有沒有聽過?

說句實話,我還是第一次聽說有這款軟件存在,雖然這款軟件,早在2014年,就有人在開源中國中提交了。

Alluxio基於Apache License 2.0開源,當前代碼放在Github上。從Github上的star和fork數量來看,也算是一款比較熱門的軟件了。不知道大家的公司有沒有嘗試過這款產品?(歡迎用過的小夥伴在評論區留言討論

最初的Alluxio項目,起源於UC Berkeley AMPLab,他被作爲Berkeley Data Analytics Stack (BDAS)的數據訪問層。當前參與貢獻的開發者有1000多名,他們分別來自於Alibaba, Alluxio, Baidu, CMU, Google, IBM, Intel, NJU, Red Hat, Tencent, UC Berkeley 和Yahoo等300多家組織機構。可以說,在行業內已經是很火了,據說很多互聯網大廠都在玩這個!!!

一張圖看清Alluxio

上面提到了,Alluxio是一個數據編排工具。這裏插一句題外話,提到編排工具大家肯定首先想到的是K8S,它是一個容器編排工具,所謂的編排工具,就是安排各個容器怎麼工作的。那麼我們聯想一下,這個Alluxio是不是就是一個安排數據應用怎麼協調工作的工具呢? 帶着這個問題,我們來看下面這張圖:

從上圖可以看到Alluxio是一個 介於AWS S3、HDFS、Ceph、MinIO與Presto、Spark、Hive等組件之間的軟件 我們展開分析一下:

  • Spark、Hive、Presto是什麼?是計算引擎
  • 以上軟件的數據存在哪?通常存在HDFS裏,當然也支持別的分佈式文件系統
  • Alluxio介於他們之間,他能做什麼?要麼實現功能的擴展,要麼實現性能的加速
  • Alluxio介於他們之間,他必須做什麼?必須做好南北向的接口,因爲他要兼容數據棧裏的各種軟件

帶着這些問題,我們進入第二部分,看一看Alluxio的功能特點及優勢👇👇👇👇

Alluxio的優秀特性

Alluxio通過簡化應用程序訪問數據的方式(無論數據的格式或位置),幫助使用者克服從數據中提取有用信息的障礙。Alluxio的優秀特性包括:

  • 內存級別的IO訪問速度:Alluxio可以作爲分佈式共享緩存服務,因此與Alluxio通信的計算引擎可以透明並快速的訪問熱數據,特別是來自遠程位置的數據,以提供內存I/O吞吐量。此外,Alluxio的分層存儲結構可以同時利用內存和磁盤(SSD/HDD),使數據驅動應用的彈性擴展具有更高的成本效益。

  • 簡化雲和對象存儲的使用:與傳統文件系統相比,雲和對象存儲系統使用不同的語義,這對性能有影響。常見的文件系統操作(如目錄羅列和重命名操作)通常會產生巨大的性能開銷。在訪問雲存儲中的數據時,數據計算應用沒有節點級存儲或跨應用緩存。使用雲或對象存儲部署Alluxio可以通過從Alluxio而不是底層雲或對象存儲提取數據來緩解這些問題的影響。

  • 簡化數據管理:Alluxio提供對多個數據源的單點訪問能力。除了連接不同類型的數據源外,Alluxio還允許用戶同時連接到同一存儲系統的不同版本,例如多個版本的HDFS,而無需複雜的系統配置和管理。

  • 使應用部署更容易:Alluxio管理計算引擎與文件或對象存儲之間的通信,將應用程序的數據訪問請求轉換爲底層存儲接口。Alluxio與Hadoop兼容。現有的數據分析應用,如Spark和MapReduce等,可以在Alluxio上運行,而無需任何代碼更改。

以上四個特性,是不是正好跟我們前面的假設呼應上,Alluxio在計算引擎和分佈式存儲中間,既能提升計算引擎的訪問速度,又能使複雜的數據棧部署更加容易。下面貼一張Alluxio的架構圖,這裏不展開講,大家感興趣的看一下,後面會單獨寫文章展開介紹。

Alluxio能給大家打來什麼革命性能力?

通過在中間提供一層緩存、統一的南北接口層,Alluxio相比於傳統的計算存儲結構,可能爲大型企業/複雜數據棧的公司帶來三個方面的革新:

  • 全局命名空間:Alluxio可以作爲多個獨立存儲系統的單點訪問層。這對下可以爲所有數據源提供統一的視圖,對上可以爲應用提供標準接口。

  • 智能多層緩存:Alluxio集羣充當連接存儲系統中數據的讀寫緩存。可以通過配置策略自動優化數據放置位置,以提高內存和磁盤(SSD/HDD)的性能和可靠性。緩存對用戶是透明的,並使用緩衝層來保持與持久存儲的一致性。

  • 服務端API轉換:Alluxio支持行業通用API,如HDFS API、S3 API、FUSE API、REST API。它可以透明地從標準客戶端接口轉換爲任何存儲接口。Alluxio管理計算引擎與文件或對象存儲之間的通信,無需複雜的系統配置和管理。

最後,雖然Alluxio是開源軟件,但是也有對應的商業化公司。他的開源版本和企業版功能基本一致,缺少的主要功能有複製支持和Kerberos身份驗證,另外還有商業支持也不隨開源版本提供。

如果大家仍然意猶未盡,可以點贊關注並轉發哦,我會繼續給大家帶來進一步的分析;另外也可以通過訪問官方網站:https://www.alluxio.io/ 獲取更多的信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章