白山云科技基于StarRocks + Hudi 湖仓一体化实践分享

白山云科技基于StarRocks + Hudi 湖仓一体化实践分享

业务背景介绍

白山云的内容分发服务拥有1400+全球边缘节点,网络带宽容量60Tbps+,平台每日处理请求次数超过5000亿。
为了提升服务质量,业务人员经常需要提取这千亿级别的日志进行分析,因为日志量过于庞大,基于成本的考虑,数据不能直接进入到StarRocks中,而是流向了基于HDFS底层存储的Hudi集群。

原来的解决方案(SparkSQL)

Metabase + hudi + SparkSQL
由于SparkSQL查询有一定门槛限制,技术中台部门最初使用了Metabase图形化界面+SparkSQL引擎 + Hudi存储的架构。
业务人员有日志查询需求时,通过metabase的图形化节点,通过点击+一些下拉选择的形式,即可自动拼接出可执行的SparkSQL查询hudi集群。
弊端:
上面的架构虽然满足了业务方的查询需求,但是随着用户量的增多,发现了诸多问题:

  1. 资源消耗严重,采用的是2个常驻在Yarn上的任务进行查询任务的执行,即使没有查询任务,也会长期占据大量资源。
  2. 查询很慢,在多个使用方共同查询时,后续任务排队执行,导致一些很小的查询,浪费了大量的时间在排队上。
  3. 稳定性较差,SparkSQL经常由于各种原因执行失败,要重试甚至人工介入才能得到正确结果。

基于StarRocks的解决方案

由于我们部门一直有用到StarRocks数据库,所以一直关注着社区的发展,在StarRocks 2.5版本发布后,StarRocks 支持了通过catalog的形式查询hudi集群,我们马上部署了一套StarRocks 2.5 环境与现有SparkSQL方案进行了对比。

引擎环境内存环境CPUSQL首次执行时间SQL再次执行时间SQL内存消耗 * 时间SQL CPU消耗* 时间并发问题稳定性问题物化视图存算分离
SparkSQL720G242core90s42-77s32400G*s10890core*s单个SQL会拿全部资源计算,后续SQL排队如果SQL故障,会将Yarn进行打挂
StarRocks256G64core31s7-10s1742M*s0.139core*s支持多个SQL同时运行,无需排队单个故障SQL不会影响服务支持湖上物化视图加速查询支持存算分离动态扩缩容
SparkSQL/StarRocks2.83.782.96-81904578345

测试结果非常惊艳,StarRocks在只使用了SparkSQL 1/3的资源的情况下,查询性能是SparkSQL的3-8倍。并且这一效果,在并发查询时效果更佳明显。

基于以上测试结果,我们很快使用了StarRocks的方案替代了SparkSQL的方案进行hudi查询,在架构升级完成后,由于StarRocks出色的性能,获得了业务方的一致好评。

业务收益

业务方反馈查询效率、稳定性提升显著。
在故障排查、资源调度、性能调优等多个场景下,更能满足业务方的使用需求了。
在服务器出现问题时,更快的查询意味着更早的定位到问题,从而更快的恢复服务,提升服务质量,减少客户投诉。

技术收益

我们有多个机房和多套hudi集群,在全面使用StarRocks替代SparkSQL查询hudi集群后,资源消耗节省70%,在无并发场景下,查询效率提升3-8倍,在并发执行场景下,查询效率提升10倍以上。
并且StarRocks的架构还支持湖上物化视图和存算分离动态扩缩容,为我们进一步提升查询效率夯实了基础。

踩过的坑

在StarRocks 2.5版本刚刚发布时,我就搭建了单独的集群用于hudi集群的查询,因此也踩了一些小坑。
StarRocks 在2.5的小版本对接hudi查询时发生过多次BE挂掉,FE挂掉,FE元数据丢失,部分Parquet文件查询失败问题。
在社区大佬的鼎力支持下,针对性的打了多个补丁,集群版本从2.5.1 -> 2.5.2 -> 2.5.4 -> 2.5.5 -> 2.5.6 。
最后终于在2.5.6版本更新后,集群不在发生任何查询失败及节点崩溃问题了,再次感谢社区大佬!
如果有其他小伙伴打算使用StarRocks接入hudi集群进行湖仓一体化查询,也建议选择版本为StarRocks2.5.6及以后的版本~

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lixiaoer666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值