一.Alluxio概述
Alluxio(前身Tachyon)是世界上第一個以記憶體為中心的虛拟的分布式存儲系統。它統一了資料通路的方式,為上層計算架構和底層存儲系統建構了橋梁。
Alluxio項目源自加州大學伯克利分校AMPLab,作為伯克利資料分析堆棧(BDAS)的資料通路層。Alluxio是增長最快的開源項目之一,吸引了來自300多家機構的1000多名貢獻者,包括阿裡巴巴,Alluxio,百度,CMU,谷歌,IBM,英特爾,NJU,紅帽,騰訊,加州大學伯克利分校,以及雅虎。

二.Alluxio架構
Alluxio是大資料和機器學習生态系統中的新資料通路層。Alluxio作為據通路層處于持久存儲層(如Amazon S3,Microsoft Azure Object Store,Apache HDFS或OpenStack Swift)和計算架構層(如Apache Spark,Presto或Hadoop MapReduce)之間。
Alluxio主要包括3個角色:masters, workers, 和clients。典型的叢集是由主備masters,主備job master,workers和job workers組成。
Job Masters和Job Workers可以作為單獨的功能,即Job Service。Job Service是一個輕量級的任務排程架構,負責為Job Worker配置設定各種不同類型的操作。
- 将UFS的資料加載到Alluxio
- 資料保留到UFS
- 複制Alluxio中的檔案
- UFS/Alluxio之間移動或複制資料
Ⅰ).Masters
Alluxio包括2類主程序:
- Master: 為中繼資料的變更(使用者請求和日志檔案系統)提供服務
- Job Master: 做為輕便的排程器,對執行在Job Master上的檔案操作提供排程
HA叢集角色
a).Leading Master
Alluxio叢集隻能由一個Leading Master程序,Leading Master負責管理系統的全局中繼資料。包括file system metadata、block metadata 和 worker capacity metadata,Alluxio用戶端通過與Leading Master互動來讀取或修改中繼資料。所有的Workers定時向Leading Master發送心跳資訊,Leading Master會記錄所有的檔案操作到日志中
b).Standby Master
Standby Master在運作在與Leading Master不同的伺服器上,以便在HA模式下運作Alluxio時提供容錯功能。Standby Master會及時同步讀取Leading Master的日志。
c).Secondary Master
Alluxio不是HA模式時,可以在Leading Master伺服器上啟動Secondary Master來編寫journals檢查點。當Leading Master無法工作時,提供快速服務恢複;但Secondary Master永遠不能能做為Standby Master。
d).Job Master
Job Master是一個獨立的程序,負責在Alluxio中異步處理一些更重量級的檔案系統的操作。
Ⅱ).Workers
Workers負責管理配置設定給Alluxio使用者可配置的本地資源(例如記憶體,SSD,HDD)。Job Workers做為Alluxio檔案系統的用戶端,負責執行Job Master給他的任務,将資料存儲為block同時響應Client的讀寫請求;實際的file和block的映射關系儲存在Master中。
Ⅲ).Client
Alluxio client為使用者提供了與Alluxio servers互動的網關。Client先向Leading Master請求中繼資料資訊,再向workers發送讀寫請求。
三.Alluxio特點
Ⅰ).記憶體I/O速度
Alluxio可用作分布式共享緩存服務,是以與Alluxio通信的計算應用程式可以透明地緩存經常通路的資料,尤其是來自遠端位置的資料,以提供記憶體中的I/O吞吐量。
Ⅱ).采用簡化的雲和對象存儲
雲和對象存儲系統使用與傳統檔案系統相比具有性能影響的不同語義。
Ⅲ).簡化資料管理
Alluxio提供對多個資料源的單點通路。除了連接配接不同類型的資料源之外,Alluxio還使使用者能夠同時連接配接到同一存儲系統的不同版本,例如多個版本的HDFS,而無需複雜的系統配置和管理。
Ⅳ).簡單的應用程式部署
Alluxio管理應用程式與檔案或對象存儲之間的通信,将資料通路請求從應用程式轉換為底層存儲接口。Alluxio相容Hadoop,Spark和MapReduce程式,可以無需修改任何代碼在Alluxio之上運作。
三.安裝部署
Ⅰ). 下載下傳
Community-alluxio-2.0.0Ⅱ).安裝部署
解壓
tar -zxvf alluxio-2.0.0-bin.tar.gz
配置
## 複制配置檔案
cp alluxio-site.properties.template alluxio-site.properties
## 編輯配置檔案
vi alluxio-site.properties
alluxio.master.hostname=hostname
alluxio.master.mount.table.root.ufs=/home/bigdata/alluxio/data
alluxio.worker.tieredstore.level0.dirs.path=/home/bigdata/alluxio/dat
初始化
## 驗證Alluxio環境
./bin/alluxio validateEnv local
## 格式化Alluxio日志和工作程式存儲目錄
./bin/alluxio format
啟停服務
## 啟動服務
./bin/alluxio-start.sh local SudoMount
## 停止服務
./bin/alluxio-stop.sh local
驗證服務
啟動日志
頁面
Master url: http://hostname:19999
Worker url: http://hostname:30000