Alluxio Local Cache 監控指南 Alluxio Alluxio
作者
張策:Alluxio PMC & 聯通大資料工程師
01 什麼是 Alluxio Local Cache
隨著雲端計算在基礎設施領域的市場份額持續上升,主流資料分析引擎紛紛選擇獨立擴充套件儲存、計算來適配雲基礎設施,並以此為雲提供商降低成本。但是,儲存計算分離也為查詢延遲帶來了新的挑戰,因為當網路飽和時,通過網路掃描大量資料將受到 IO 限制。此外,元資料也面臨遠端網路來檢索的效能問題。
資料編排系統 Alluxio 預見到了存算分離的發展趨勢,並通過分散式快取服務為 Presto、Spark 等引擎加速查詢效能。為了在存算分離架構中實現亞秒級的查詢延遲,Alluxio 和 Presto 的核心團隊合作實現了客戶端嵌入式快取庫 Alluxio Local Cache,來進一步減少資料分析引擎和 Alluxio 之間的通訊開銷。
相關部落格如下:
Alluxio Data Caching : http://prestodb.io/blog/2020/06/16/alluxio-datacaching
Presto RaptorX : http://prestodb.io/blog/2020/06/16/alluxio-datacaching
02 Alluxio Local Cache 配置與啟用
2021 年大部分時間 Local Cache 僅支援 Presto Hive Connector,並已經得到大規模應用。社群於2021年底新增了Local Cache 對 Presto Iceberg Connector 的支援,相關內容將在之後的部落格做深入介紹。
如何在 Presto on Hive 場景配置、啟用 Local Cache:
1. Presto 配置檔案:etc/catalog/hive.properties
hive.node-selection-strategy=SOFT_AFFINITY
2.修改 Presto 配置檔案:etc/catalog/hive.properties,快取路徑推薦配置為 Ramdisk 或 SSD 來達到最佳效果。
cache.enabled=true
cache.base-directory=file:///mnt/flash/data
cache.type=ALLUXIO
cache.alluxio.max-cache-size=1600GB
3. 啟動 Presto
Tips:除資料快取(Data cache)外,其他快取功能為實驗特性。
03 如何監控 Local Cache
為了提升 Local Cache 的可觀測性,我們可以通過 prometheus jmx exporter 將 Worker 的指標暴露出來,使用 prometheus 採集後做進一步分析。
監控配置與啟用
1.新增jmx_prometheus_config.yaml配置檔案
global:
scrape_interval: 15s
evaluation_interval: 15s
2.下載jmx_prometheus_javaagent-.jar,簡稱jmx_prometheus_javaagent.jar
3.presto jvm.config 配置中新增
-javaagent://jmx_prometheus_javaagent.jar=://jmx_prometheus_config.yaml
4.重啟 Presto
5.訪問 http://<presto_worker>:port/ 查詢是否配置成功
6.將指標接入 prometheus,在 promethues 配置檔案中新增
scrape_configs:
- job_name: "presto_local_cache"
scrape_interval: 15s
static_configs:
- targets: [":"]
labels:
appname: "presto_local_cache"
指標解析
Alluxio Local Cache開放了眾多監控指標,以下指標是描述快取使用情況的基礎指標,使用者需要重點關注:
快取命中率
- com_facebook_alluxio_Client_CacheHitRate_<HOST>_Value
快取訪問量:
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_OneMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_FiveMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_FifteenMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadCache_<HOST>_Count
快取未命中後,外部系統訪問量
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_OneMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_FiveMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_FifteenMinuteRate
- com_facebook_alluxio_Client_CacheBytesReadExternal_<HOST>_Count
快取空間使用量
- com_facebook_alluxio_Client_CacheSpaceUsed_<HOST>_Number
快取空間剩餘量
- com_facebook_alluxio_Client_CacheSpaceAvailable_<HOST>_Value
快取頁數目
PS:在LOCAL模式下每個頁儲存為一個檔案,當快取儲存在機械磁碟上時需要重點關注。不推薦使用機械磁碟作為LOCAL模式快取儲存,推薦使用SSD或者Ramdisk
- com_facebook_alluxio_Client_CachePages_<HOST>_Count
想要獲取更多有趣有料的【活動資訊】【技術文章】【大咖觀點】,請關注[Alluxio智庫]:
- Alluxio跨叢集同步機制的設計與實現
- 如何借力Alluxio推動大資料產品效能提升與成本優化?
- 2023年五大趨勢預測 | 大資料分析、人工智慧和雲產業展望
- 如何用Alluxio加速雲上深度學習訓練?
- 【螞蟻】Alluxio在螞蟻集團大規模訓練中的應用
- 從博士論文到被各大廠應用,Alluxio 如何走過 7 年創業路
- Presto on Alluxio By Alluxio SDS 單節點搭建
- Alluxio Local Cache 監控指南 Alluxio Alluxio
- 幫助 Meta 解決 Presto 中的資料孤島問題
- B站基於Iceberg Alluxio助力湖倉一體專案落地實踐
- 【聯通】資料編排技術在聯通的應用
- 【聯通】資料編排技術在聯通的應用
- Alluxio 原始碼完整解析 | 你不知道的開源資料編排系統(下篇)
- Alluxio 原始碼完整解析 | 你不知道的開源資料編排系統 (上篇)
- Meta(Facebook): 基於Alluxio Shadow Cache優化Presto架構決策
- Apache頂級專案Ranger和Alluxio的最佳實踐(附教程)
- 金山雲團隊分享 | 5000字讀懂Presto如何與Alluxio搭配
- 2min速覽:從設計、實現和優化角度淺談Alluxio元資料同步
- 華能 Alluxio | 數字化浪潮下跨地域資料聯邦訪問與分析
- 什麼是一致性雜湊?可以應用在哪些場景?