《货拉拉大数据 Doris 稳定性保障实践.pdf》由会员分享,可在线阅读,更多相关《货拉拉大数据 Doris 稳定性保障实践.pdf(36页珍藏版)》请在三个皮匠报告上搜索。
1、DataFunSummitDataFunSummit#20232023货拉拉大数据货拉拉大数据DorisDoris稳定性稳定性保障实践保障实践杨秋吉-货拉拉-OLAP负责人梁健聪-货拉拉-大数据工程师背景与挑战稳定性能力保障稳定性流程规范总结与规划目录目录 CONTENTCONTENTDataFunSummitDataFunSummit#202320230101背景与挑战货拉拉介绍货拉拉介绍360360国内城市6868万万月活司机950950万万月活用户8+8+业务线7+7+IDC1000+1000+机器数2020PB+PB+存储量20k+20k+日均任务数货拉拉货拉拉-大数据大数据大数据大数
2、据基础平台基础平台基础层基础层离线计算实时计算资源管理大数据存储OLAP计算基础元数据(Hivemeta)实时数据接入埋点数据接入数据对账数据链路监控离线数据接入数据数据接入接入平台平台接入层接入层数据门户数据门户权限权限中心中心个人个人中心中心内容内容管理管理知识库知识库建议建议反馈反馈数据门户数据门户权限中心个人中心内容管理知识库建议反馈门户上海品茶平台层平台层&数仓数仓数据研发平台数据研发平台飞流实时开发BQ数据查询IDP数据集成开发数据仓库数据仓库DWDWB B基础整合层基础整合层DWDWT T明细数据层明细数据层数据湖接入(数据湖接入(T+1T+1、近实时、实时)、近实时、实时)DWSD
3、WS公共汇总服务层公共汇总服务层用户集市用户集市司机集市司机集市主数据库主数据库数据治理平台数据治理平台大数据安全管理元数据管理数据建表管理数据质量管理数据工具箱数据工具箱自助分析自助分析可视化大屏可视化大屏数据服务工具数据服务工具快捷分析快速报表数据智能支撑工具数据智能支撑工具服务层服务层预警/告警监控多维分析固定报表AB Test特征平台大数据分析平台大数据分析平台数据应用支撑服务工具数据应用支撑服务工具数据工具箱自助分析可视化指标库管理数据上报固定报表用户画像数据云服务大数据分析平台辅助决策类应用辅助决策类应用赋能业务类应用赋能业务类应用应用层应用层智能营销智能广告投放实时报表鹰眼监控经
4、营分析用户分析数据仓库数据仓库ODS贴源数据层DWS公共汇总服务层DIMDIMDWD明细数据层DWB明细数据整合层用户集市用户集市司机集市司机集市集市1集市2指标库AI平台货拉拉货拉拉-大数据大数据DorisDoris业务介绍业务介绍aaaAB 平 台01aaa用户画像人群圈选02aaa漏斗分析、归因诊断03aaa04关联海量埋点数据灵活多维分析云台(数据可视化平台)罗盘(增长分析决策平台)稳定性稳定性挑战挑战稳定性挑战业务对Doris服务稳定性要求高1.Doris已接入多个核心业务已成为大数据核心基础组件开源软件基本能力和生产需求之间的差距大1.Doris内核能力完善,但外围平台能力不足,例
5、如监控告警、运维管控2.Doris内核演进速度快,相应的Issue也较多版本数(2022-2023)Issue数(2022 2023)14Open:1438Closed:4112稳定性保障目标稳定性保障目标快发现快发现核心链路问题(主动发现)时间=9 99.459.45%(2次/年)快恢复快恢复P0核心链路恢复时间=5min5min;P1级(埋点相关指标,容忍度相对高)链路恢复时间 32)2、加强Doris变更规范管控与审批流程3、业务多租户隔离(进行中)稳定性稳定性案例案例案例三案例三数据数据质量问题质量问题场景:业务使用sparkload导入Unique模型表,查询结果不稳定原因:Uniq
6、ue模型表使用Sparkload导数时存在异常解法办法:1、将Unique模型改为Duplicate模型重建表2、将Unique模型使用注意事项加入准入规范及最佳实践进行宣讲第一次查询第二次查询稳定性稳定性案例案例案例四案例四版本升级问题版本升级问题场景:凌晨时间段 broker load任务和insert任务重合时间段,BE内存出现OOM被kill导致任务报错原因:升级1.2版本后的bitmap向量化读没有进行谓词下推,导致内存上涨解法办法:1、业务对SQL谓词下推的优化,如and和or的条件合并2、后续集群HA方案(因1.2无法直接回退1.1)稳定性稳定性案例案例案例五案例五业务变更问题业
7、务变更问题场景:业务侧自行对Doris表进行新增字段,表数据未更新且在无法查询原因:触发Doris版本1.0的bug,导致部分segment损坏,无法修复解决办法:1、沉淀通过Sparkload快速恢复数据预案2、宣导用户使用规范、任务上线规范、发布变更规范建设建设思路思路稳定性案例:导数问题、查询问题、版本升级问题稳定性能力:故障快恢复能力少出事快恢复快发现稳定性案例:导数问题、查询问题稳定性能力:发现能力稳定性案例:业务变更问题、数据质量问题稳定性能力:容量规划、自动化能力、查询拦截能力、业务隔离、用户权限管控发现发现能力能力监控告警体系监控告警体系以Zabbix作为大数据基础架构组核心监
8、控系统底座,对Doris服务进行监控和告警。目标快发现:核心链路问题(主动发现)时间=BE(云盘)3、常规高可用配置FE的配置1:4,如4C16GBE的配置1:4,如32C128G四、集群规模1、参考业务需求、数据量情况来确认最终的集群规模容量规划容量规划-容量容量监控监控指标分级指标分级指标名指标名告警阈值告警阈值一级指标-表级存储监控$table_storage-服务级别:doris_be_add_batch_task_queue_size doris_fe_query_latency_ms-机器级别:磁盘容量、CPU、内存cpu=80%mem=85%disk=90%doris_be_ad
9、d_batch_task_queue_size 100doris_fe_query_latency_ms=5s 二级指标-服务级别:doris_fe_query_latency_ms_95doris_be_plan_fragment_count-机器级别:磁盘IOdoris_be_plan_fragment_count=2200.高可用高可用能力能力服务高可用链路高可用1.FE:三台FE高可用部署2.BE:数据三副本,四台及以上BE,避免一台宕机导致数据不可写3.LB:使用负载均衡绑定三台FE,实现连接数均衡及读写高可用1.离线/准实时导数链路:Spark load/Broker load/S
10、elect insert into任务,通过离线调度任务平台进行调度,支持异常自动重试或者电话告警2.实时导数链路:Flink类型任务,通过自研实时任务平台进行调度,支持异常自动重试或者电话告警自动化能力自动化能力运维运维SOPSOP运维脚本化运维脚本化运维自动化运维自动化脚本化改造自动化封装背景:初期在构建大数据Doris集群时,我们以标准SOP指引下通过脚本手动操作为主,人为误操作或遗漏的可能,稳定性相对较差差。进展:通过大数据自动化平台构建Doris自动化能力,底座基于Netflix Conductor、Ansible开发,已集成Doris部署、Doris扩容、Doris升级等工作流编排
11、能力。收益:1、提升Doris组件服务稳定性2、提升运维人效Doris升级工作流其他其他保障能力保障能力一、一、查询拦截能力查询拦截能力1、设置用户级别拦截规则,根据实际数据量级、查询规模制定拦截规则2、可快速对异常query进行手动kill,防止对集群整体产生更大影响二、二、故障快恢复能力故障快恢复能力1、分区数据的快速恢复能力2、tablet状态恢复能力三、三、业务隔离业务隔离1、根据业务重要程度、数据类型属于实时或离线进行集群隔离、多租户。四、用户权限管控四、用户权限管控1、通过使用Doris自带的RBAC(Role-Based Access Control)能力,对用户/角色赋予相关权
12、限DataFunSummitDataFunSummit#202320230303稳定性流程规范稳定性流程规范稳定性流程规范一、一、DorisDoris业务业务准入规范准入规范二、二、DorisDoris使用规范使用规范三、三、DorisDoris业务变更规范业务变更规范DorisDoris业务业务准入规范准入规范需求需求评估评估1、快速理解业务需求,判断Doris是否最适合业务场景 准入准入评审评审1、参加大数据部门的需求准入评审2、评估业务价值、投入产出比ROIDorisDoris使用使用规范规范类型关注1关注2关注3 建表 1.分桶数建议值16或32,单个tablet 约1G 反例:分桶设
13、置太小,导致单个tablet达30G,执行compact很慢,集群吞吐变差 1.表模型(优先使用Aggregate/Duplicate)2.前缀索引(根据查询条件设置)3.分区字段(设置合理的生命周期)1.高频写入表建议放在单独的数据库,避免事务数过多影响到同库的其他表 flink写入 1.切勿使用自己的jar,要使用flinksql 反例:使用自己的jar,一条数据一个写入事务,导致集群吞吐变慢 1.数据无乱序(保证只有单个分区的数据)反例:数据存在大量乱序,任务每次写入都涉及几十个分区,导致集群吞吐变慢 1.单个batch的发送数据量建议 Batch size=100MB或者timeout
14、=2 5min,单表批次导入实例并发=2 Insert写入 1.insert into执行成功后,还需等待版本发布后,数据才可见 反例反例:执行成功后立即查询,查询结果为空执行成功后立即查询,查询结果为空 N/A N/A 删除 1.避免频发删除,导致Compaction压力大,影响写入和查询性能 反例:业务高峰期频繁执行delete语句,集群base compact频繁,吞吐变慢 1.Delete执行,数据可见性是异步 1.Drop语句后不用加force,这样出现误删除可在一段时间内找回 修改 1.一张表同时间只能执行一个alter 反例:执行修改列类型,会对数据做遍历,耗时久,这段时间再次执
15、行则会报错 1.支持增删列、修改列,不支持修改列名 1.新增/删除数据前停写入任务,且等待5分钟后再执行,防止数据不一致 查询 1.严禁不带过滤条件查询全量数据,且建议业务加上limit兜底 反例:查询全表数据,打爆集群CPU和内存 1.Doris不适用高并发QPS场景 1.Doris兼容Mysql协议,业务查询时可带traceId,方便排查问题DorisDoris变更规范变更规范1、业务低峰期,非节假日前一天2、离线12-16点,实时20-24点3、非变更窗口需走紧急变更流程一、发布窗口1、服务稳定性验收2、服务功能性验收3、异常快速回滚四、验收1、发布背景、执行操作需描述清楚2、通知业务方
16、、执行方、次日Oncall二、发布内容、发布通知1、方向负责人、组负责人审核2、遵循Doris使用规范3、不变更就必然产生稳定性风险或无法故障恢复情况下可提前变更,事后补充三、审核DataFunSummitDataFunSummit#202320230404总结与总结与规划规划总结总结保障保障目标目标保障保障能力能力案例案例分析分析流程流程规范规范一、保障目标一、保障目标1、数据准确性/可靠性2、业务链路稳定性二、二、案例分析案例分析1、数据查询2、导数性能3、数据质量4、版本升级5、业务变更三、保障能力三、保障能力1、发现能力2、容量规划3、高可用能力4、自动化能力5、拦截、隔离、恢复、权限管控能力四、流程规范四、流程规范1、Doris业务准入规范2、Doris使用规范3、Doris变更规范思考思考稳定性的建设是持续的、成体系化的,而非靠运非靠运气气稳定性的目标实现需要业务方支持,而非靠单点非靠单点突破突破12规划规划01多集群HA、多租户隔离、冷热存储稳定稳定02OLAP能力平台化,提升易用能力易用易用03紧跟Doris社区,尝试更多的应用场景:高并发点查/文本搜索代替ES/联邦查询高效高效感谢观看感谢观看