文章目录
什么是 Alluxio Local Cache
随着云计算在基础设施领域的市场份额持续上升,主流数据分析引擎纷纷选择独立扩展存储、计算来适配云基础设施,并以此为云提供商降低成本。但是,存储计算分离也为查询延迟带来了新的挑战,因为当网络饱和时,通过网络扫描大量数据将受到 IO 限制。此外,元数据也面临远程网络来检索的性能问题。
数据编排系统 Alluxio 预见到了存算分离的发展趋势,并通过分布式缓存服务为 Presto、Spark 等引擎加速查询性能。为了在存算分离架构中实现亚秒级的查询延迟,Alluxio 和 Presto 的核心团队合作实现了客户端嵌入式缓存库 Alluxio Local Cache,来进一步减少数据分析引擎和 Alluxio 之间的通信开销。
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)外,其他缓存功能为实验特性。
如何监控 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
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Presto Alluxio Local Cache 监控指南】(https://www.iteblog.com/archives/10077.html)