- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
搜狗商业广告流式计算实践.pptx
展开查看详情
1 .搜狗商业广告流式计算实践 么刚 yaogang@sogou-inc.com 2015-04-24
2 .目录 架构实践 思考与展望 当“广告平台”遇到“流式计算” ③ ① ②
3 .当“广告平台”遇到“流式计算” ①
4 .商业平台大数据的挑战 Variety 文字 、 图片 视频 、 LBS … Velocity 年 … 月 … 周 … 天 … 小时 … 秒 … Volume 95% 网民 10 亿 + 物料 10T/ 天 … Veracity User… Advertiser… Publisher…
5 .商业广告平台 流式 计算场景 运 营 监 控 安 全 监 控 业 务 接口 推广管理 物料 管理 资金 管理 客 户 / 代理商管理 监 控工具 优化 工具 批量 工具 分析 工具 分 析优化系统 账 户分析 优化建议 关键 词推荐 同 行对比 审核 系统 关键词审核 创 意审核 图 片审核 匹配 度审核 统计 系统 C RM 统计 运 管统计 BO 统计 … … 财务 系统 财务资金管理 存 储系统 账户 组 关键词 创意 图片 财务 审核 统 计信息 投放 系统 关键 词重写 广 告检索 广 告匹配 广告过滤 CTR 预估 广 告排序 价 格计算 投 放位置 计费系统 计 费管理 资 金管理 账 单生成 账 单对比 反作弊系统 点击清理 日 志 系统 日志收集 日志存储 ETL 流 量 入 口 物料状 态计算 物料 审核 流式计费 流式过滤 PV/ UV 入侵检测 七层 DDos
6 .架构实践 ②
7 .数据源 数据采集 数据接入 数据计算 数据查询 流式计算处理流程 采集 聚合 过滤 负载均衡 持久化 单播 / 广播 资源管理 任务执行 任务调度 索引 冷热分离 同步 / 选举 传输 读写分离 中间结果缓存 数据缓冲
8 .高性能、高可靠、可扩展 一致性 账户状态 广告状态 时序性 广告状态消息 事务性 计费消息不能重复,不能丢失 商业平台流式计算的特点
9 .流式计算架构图
10 .目 标 健 壮性 · 网络闪断、 · 机房 / 交换机割接、 · 新版本上线 功能 · 过滤、 · 断点续传 性 能 · 应对突发流量 采集系统选型 选 型 Scribe Flume-NG
11 .采集系统实践 容错性 LSN 记录:断点续传和故障恢复 可扩展设计 过滤 机制配置化 发送组件插件化 性能优化 异步批量 push + 同步重传 数据源格式 统一 %h %v %V %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %{X-Forwarded-For} i %h %l %u %t "%r" %s %b "%{ Referer } i " "%{User-Agent} i " %D
12 .序列号生成服务 目标 支 持多 Topic, 全局递增 高可用 可扩展 · 支持水平扩容缩容 · 支持 topic 增删 系 统设计 Nginx :路由 ZK :序列号、服务拓扑( Topic->Node )、集群状态 服 务集群:按照服务拓扑提供服务
13 .高 可用设计 由主节点计算服务拓扑 主节点失效: leader 选举 发生 Node 失效,主 节点重新计算服务拓扑,其他节点根据服务拓扑变化 ,完成 FailOver 。 性能 网络接口 客户端:提供批量接口 ZK :采用序列号预分配机制,降低 ZK 的读写压力 序列号生成服务 ( Contd ) master 服务拓扑 节点 Zookeeper 拓扑同步 节点 update watch update slave slave slave 负载均衡 , 在计算服务拓扑时考虑 Topic 的权重,防止过载
14 .问题 数据容错 不支持 exactly once 所有 ISR 失效时,可能消息丢失 缺乏权限控制 Kafka 高性能: O (1) 高可用:显式分布式 容错性 Replicas zk 记录消费 offset 数据接入系统选型
15 .权限控制 读权限控制: iptables 写权限控制: 拦截 ProducerRequest AppSecret : client.id+request.ip+topic 接入系统实践 容错性 利用全局 MsgID 进行滤重和排序
16 .故障案例 大量超长消息导致 broker 异常退出 ( young gc bug ) :升级 JDK 接入系统实践 ( Contd ) 运维工具 监控管理工具 重放 / 修复工具
17 .关注点 事务性 高性能 资源管理 Storm 可扩展 高 可靠性: Acker 高 容错性 · 进程、主机、网络 实时 性 计算系统选型
18 .计算系统实践 资源管理 事务性 性能调优 Trident Topology TransactionalTridentKafkaSpout / OpaqueTridentKafkaSpout Worker 数设置: CPU 利用率 VS 网络 / 反序列化 开销 Spout 设置 : max.spout.pending 负 载均衡: 避免热点 bolt Cgroups , 启动 worker 时进行 cpu , memory 和 cpuset 类型的资源管 理
19 .物料审核 : AC 状态机,无回溯的多模匹配 流式过滤: Bloom Filter ,无漏判,低误判 复杂维度 UV 统 计 : Hyper LogLog ,通过位图信息估计 UV ,位图大小决定统计精度 滑动窗口计数: DGIM, 用桶结构划分窗口,对窗口计数进行估计。 计算系统实践( Contd )
20 .存储系统设计 目标 支持 SQL 接口 memory efficient 查询一致性 高可用、可扩展 LRU 存储系统 计算 结果 SQL 解析 持久化 接收 Agent 主从 同步 负 载 均 衡 SQL SQL 计 算 系 统 ZooKeeper HeartBeat 负载均衡 HeartBeat SQL 优化 存储系统 计算 结果 SQL 解析 持久化 接收 Agent SQL 优化 LRU
21 .存储系统实践 负载均衡设计 多 partition :一致性 hash 同一 Partition :主从同步 冷热数据分离 Cache+ 持久化 置换策略:惰性更新 全局热数据定期计算
22 .可扩展设计 配置化:内存表结构 , 表索引 高可用设计 ZK 维护负载均衡策略,节点失效 / 扩容缩容时,各节点重新调整 cache 设备冷启动:热数据加载 + 增量更新 存储系统实践( Contd ) SQL 查询优化 索引查询条件优先于非索引查询条件 小表查询优先于大表查询 Value 比较条件优先于链接列条件
23 .Use Case
24 .统一计算平台中的流式计算框架 访问层 文件接口 数据库 自助查询 计算层 storm MR pig hive hadoop hbase impala 采集层 实时采集 离线采集 kafka Flume-NG 调度管理 ZK Yarn 数据源 物料数据 用户数据 运营数据 日志数据 其他数据 cgroup 运行监控 zabbix Storm UI Hadoop UI ZK 监控 Hbase UI 数据库 监控 一体化管理 数据源管理 数据接入管理 NoSQL 用户管理 任务管理
25 .流式计算开源工具链 采集 接入 计算 查询
26 .思考与展望 ③
27 .思 考 & 展 望 资源整合 storm-on-yarn Kafka-on-yarn 可伸缩性 启发式预测 / 机器学习预测 权限控制 服务分级
28 .THANK YOU FOR YOUR TIME 么刚 yaogang@sogou-inc.com