百度外卖 梁福坤:基于Druid的大数据采集即计算实践

沐古香

2017/11/14 发布于 技术 分类

冲击波(ShockWave)作为在Druid基础之上构建的采集即计算的开源项目,主要目的能够实现百度外卖业务场景下预设数据需求规则,可以实现数据的持续、实时的交付。冲击波除了支持Druid原生态查询API之外,可以通过定义数据源选择、数据分组、数据过滤计算规则下数据指标的聚合运算,同时不同时间频次周期下的入库规则,交付数据支持自定义目的库和数据推送,是一套完整的从数据源接入、计算最终交付的整体解决方案。

文字内容
1. 基于Druid的S百大A度数外C卖据C梁2采福0集坤17即计算实践
2. 关于我 梁福坤 10年+职业生涯 SACC20172014.2月入职百度,创建Do平台并提供地图Place6大行业做数据分析 2014年5月专注 百度外卖大数据专项分析 现在负责百度外卖大数据平台+智能物流策略团队
3. 01SACC2大01数7 据架构
4. 平台 Do平台 烽火 亮剑 数据集市 驾驶舱 关联融合 ETL 大数据架构V4.1 核心服务 基础服务 数据仓库 报表/任性/自如 用户、商户画像 渠道分析 流量分析 UE仪表盘 SACC2017实时OLAP Adhoc/Dora*/雷电 Druid+冲击波 调度(通天) + CT 任务 CDH Yarn Impala Phoenix Hive GreenPlum Spark Cluster ElasticSearch HDFS/Kudu OpenSQL OpenLog OpenWeb 数据托管 传送门 数据源 DB/Binlog Kafka/NMQ Web Page Log/PB
5. 02SACC2平01台7 化设计
6. 以往实时交付方案方案 OpenApi Log Web DB Pids 采集 数据使用方 Spark Streaming Pb解析 Kafka 字段解析 SACC2017ETL过程 (过滤、计算、清洗) 中间表 Impala 交付 SQL Adhoc Phoenix 调度系统 Kafka Topic HDFS
7. 存在的问题  实时性差  流程多  周期长  数据半产品化交付  数据明细化落地  业务需求二次加工  效率差  QPS低  数据0建模  数据交付  业务层次诉求 SACC2017
8. 业务场景梳理  化繁为简  采集即计算  业务分析专注数据 RD专注平台化 SACC2017 热点数据高吞吐解决方案
9. Druid选型的考虑 大数据量下的实时多维OLAP分析 化繁为简 • 实时计算能力 • OLAP分析支持 • 时间序列的预聚合分析 SACC2017性能 • 弹性数据扩展 • 高并发/高可用/高吞吐 • 延迟数据融合 丰富查询接口 • Rest ApI • 过滤器/聚合器 • 后置聚合器
10. OLAP分析的准备 交付 支持 开放式 Log 数据交付 KafkaTopic 数据源PB定义 SACC2017分发/推送/入库 规则 解析 过滤 丰富 Function 数据采集 服务BNS 采集服务配置 Topic定义 HDFS 路径 实时预警
11. 开放式Log的承上启下 param("common.log_id") PB 集群1 日 志 parseTime("common.timesta 采 TK 集 oa pf ik ca 定 义 字 段 解 析 规 则 mp", "HH", 1) SACC2017更多解析function 字段Mapping TK oa pf ik ca 消 集群2 费 1 其他消费端 …. 黑 白 滤名 单 过 线上校验规则
12. 开放式Log的承上启下 SACC2017
13. 开放式Log的承上启下 SACC2017
14. 开放式Log的承上启下 SACC2017
15. 03SACC2服01务7 架构实践
16. 预设窗口设计 离实 SACC2017离线场景 支撑历史场景分析 复杂关联分析 T+1的分析需求 实时场景 近期数据源 计算规则可预设 近实时需求
17. DataSource 开放式Log 表meta 维S度ACC20指1标7 时间字段
18. DataSource –01 基本信息 SACC2017
19. DataSource –02 维度选择 SACC2017
20. DataSource –03 指标选择 SACC2017
21. DataSource –04 时间字段选择 SACC2017
22. Cube预设窗口逻辑 Datasource 选择 指标 维度 过滤规则 入库规则 自动创建库 SACC2017数据Join支持 解析规则 Mysql/ElasticSearch 调度任务
23. Cube-01 基本信息 SACC2017
24. Cube-01 基本信息 SACC2017
25. Cube-02 主DataSource信息 SACC2017
26. Cube-03 主DataSource指标 SACC2017
27. Cube-04 主DataSource指标 SACC2017
28. Cube-08 关联信息 SACC2017
29. Cube-08 关联信息 SACC2017
30. 实时数据展示 SACC2017
31. 04SACC2性01能7 调优
32. 性能调优实践1  环境 (5个节点 128G内存+24core +SSD Radio5 1.7T):  MiddleMananger 2台独立 1台混部  Broker Historical Coordinator 2台混部  Overlord 1台混部 SACC2017 操作:  Fact_log_sak 数据高峰 1w/s,针对user_id做count (distinct)  现象:  broker节点在查询时,如查询需要的计算量过大,会报资源不足情况,查询无结果  解决:增大堆外内存  druid.processing.numMergeBuffers = max(2,druid.processing.numThreads / 4)  MaxDirectMemorySize >= druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)
33. 性能调优实践2  背景:高峰期MiddleMananger 消费Kafka数据延迟严重  调优过程:  1: worker节点jvm配置调整,增大堆内存和堆外内存,最佳占服务器物流 内存 是1/10 和 1/3 2017 2:增大work的线程数和线程缓存  druid.processing.buffer.sizeBytes=2147483646 CC druid.processing.numThreads=10 SA 3:分配多个任务消费 topic : "druid_waimai_log_fact_log_sak_v1", replicas : 1, taskCount : 2, taskDuration : "PT1200S"
34. SACC2017