上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2-4 B站基于缓存优化 Presto 集群查询性能.pdf

编号:102454 PDF 42页 3.89MB 下载积分:VIP专享
下载报告请您先登录!

2-4 B站基于缓存优化 Presto 集群查询性能.pdf

1、B B站基于缓存优化站基于缓存优化PRESTOPRESTO集群查询性能集群查询性能杨洋 大数据开发工程师|个人简介|杨洋杨洋bilibili大数据开发工程师2021年6月份加入b站工作至今在团队中主要负责Presto与Alluxio的研发对分布式计算、存储与调度方面有浓厚兴趣0101集群架构集群架构0202Presto简介简介0404Presto on Alluxio0606后续工作后续工作目录目录 CONTENT|0303Presto改造改造0505Presto Local Cache 集群架构请01|集群架构-B站SQL On Hadoop|集群架构-Presto集群现状|Cluster1

2、Cluster2Cluster3Cluster4IDC1414+2186+214+1111+2IDC2441+2270+2085+2集群架构-Presto集群架构|Presto简介请02|Presto简介-Presto历史|Presto于2013年11月份由FaceBook开源的一个分布式Sql查询引擎,设计之初是为了进行OLAP数据查询,支持标准的ANSI SQL,支持多数据源。PrestoSQL(trino)PrestoDB主导开发Presto Software FoundationLinux Foundation社区活跃度高低功能olapetl最新版本Release 384Release

3、 0.273Presto简介-Presto基本原理|Presto改造请03|Presto改造Presto在B站的实践:https:/ on Alluxio04|Presto on Alluxio-背景介绍-Presto痛点|计算存储分离架构带来网络开销 容易受慢rpc或热dn影响,查询性能不稳定 查询缺乏locality,性能有待提升Presto on Alluxio-背景介绍-热数据|Presto on Alluxio-Alluxio引入|Worker通过Alluxio读取数据 Presto血缘信息解析用于获取热数据Presto on Alluxio-整合Alluxio需要考虑的点|Allu

4、xio与HDFS的scheme不同 Alluxio缓存数据的确定 Alluxio与HDFS的数据一致性保证Presto on Alluxio-Alluxio与HDFS的scheme不同|社区:社区:支持Alluxio的连接器(高版本Presto)从Alluxio中获取元数据(无需从HMS中获取)使Alluxio的SDS模块与底层HMS通信其他:其他:维护一套新的HMS(用于Adhoc)设置白名单(用于需要缓存的表)使新HMS与原HMS保持同步团队:团队:改造hive connector 识别分区tag参数判断是否走AlluxioPresto on Alluxio-缓存数据的确定|热数据热数据t

5、ag设置:设置:将Presto query血缘信息吐到Kafka 通过Kafka消费程序,分析血缘依赖信息并落地到Tidb 通过缓存策略服务,确定需要加载的热数据 给热数据设置tag(Tidb与HMS中)缓存策略:缓存策略:计算访问热度(一周内的访问频率均值)计算TTL(离当前最远的热分区的时间跨度)剔除超过TTL的分区Presto on Alluxio-数据一致性保证|社区:社区:通过参数控制和HDFS的元数据同步团队:团队:开发缓存失效服务(监听Hive meta event)监听add partition事件,load需缓存的新分区Presto on Alluxio-TPC-H Benc

6、hmark性能测试|实验效果:平均下来可节省约20%的查询时间Presto on Alluxio-线上效果|接入约30%的BI业务到缓存 已缓存约20w分区(约45TB)读HDFS稳定性提升,2.5ms以内改进前:改进后:Presto on Alluxio-Alluxio线上故障|现象:线上Master进程偶发crash链接:https:/ Local Cache05|Presto Local Cache-RaptorX背景|Presto在执行计划阶段需要访问HMS获取表和分区的信息,HMS的响应 受单点mysql的吞吐影响,存在慢查询 Presto在构建split以及读数据的情况下需要访问H

7、DFS。HDFS作为底层存储对接了许多计算引擎,对于RPC请求存在slow rpc情况 RaptorX应运而生,对元数据与数据源进行全方面缓存Presto Local Cache-RaptorX|Hive meta cache File List Cache Fragment Result Cache Orc/Parquet Footer Cache Alluxio Data Cache Soft Affinity Scheduling链接:https:/prestodb.io/blog/2021/02/04/raptorxPresto Local Cache-Alluxio Local模式|

8、以jar包的形式嵌入到Presto进程中Presto Local Cache-Soft Affinity Scheduling|同一个Split尽可能分到同一台worker上(1.hash&mod 2.一致性hash)Presto Local Cache-Alluxio Cluster|Presto Local Cache-Local vs Cluster|Presto Local Cache-改造点|Local Cache与底层数据一致性 Local Cache启动问题 Local Cache支持hdfs文件系统 Local Cache支持多磁盘Presto Local Cache-Loca

9、l Cache与底层数据一致性|背景:背景:缓存为旧数据(若底层文件变动)影响计算引擎查询结果思路:思路:基于文件的LastModifiedTime来判断Presto端改造:端改造:透传文件的LastModifiedTime信息,封装到HiveFileContext中 构建pageSource时,将其信息传给本地文件系统中Presto Local Cache-Local Cache与底层数据一致性|Alluxio社区:社区:社区代码实现了基本的缓存功能 社区没对过期数据进行处理Alluxio端改造:端改造:读数据时校验文件的LastModifiedTime 构建内存数据结构,保存文件及时间信息

10、 持久化信息(可用于在restore过程中恢复)修改disk存储路径结构Presto Local Cache-Local Cache启动问题|背景:背景:Local Cache restore时间点(Worker启动时)Local Cache加载失败时应关闭cachePresto端改造:端改造:Worker启动时,主动去获取一次fs(用于加载缓存)当缓存加载失败(如磁盘坏了),设置开关关闭缓存Presto Local Cache-Local Cache支持hdfs文件系统|背景:背景:社区的外部文件系统要求scheme为alluxio与ws 线上环境的data主要走HDFS(Alluxio为辅

11、)改造:改造:Alluxio端添加hdfs的scheme信息 Alluxio端添加viewfs的scheme信息Presto Local Cache-Local Cache支持多磁盘|背景:背景:单个disk空间不足 单磁盘io限制社区:社区:通过hash&mod的方式存入多磁盘改造:改造:基于AvailableSpace来做磁盘选择(借鉴HDFS)Presto Local Cache-测试效果|单并发场景下,开启local cache缓存可以减少20%左右的查询时间。4并发场景下,开启local cache整体上也有一定的提升。相比单并发情况下,有一定的性能损失。从总体上来看,无论对于简单查

12、询还是复杂查询都能够获得一定的性能提升。Presto Local Cache-线上效果|Local Cache已上线三个Presto集群 整体缓存命中率约40%Coordinator端命中率Worker端命中率Presto Local Cache-社区PR|Get raw filesystem should consider CachingFileSystem(https:/ the input and output stream of HadoopExtendedFileSystem(https:/ disable filesystem cache(https:/ hdfs and viewfs as the external filesystem(https:/ timely invalidation of parquet metadata cache(https:/ 开发支持textFile格式的缓存 开发磁盘检测(若有问题,隔离该节点)改进soft-affinity(用path+start作为key来hash,分散大文件分到单个worker split的压力)改进soft-affinity排除不开启cache的节点非常感谢您的观看非常感谢您的观看|

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2-4 B站基于缓存优化 Presto 集群查询性能.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部