系统. 日志收集. 日志存储. ETL. 流 量 入 口. 物料状. 态计算. 物料. 审核. 流式计费. 流式 ... Kafka; 高性能:O(1); 高可用:显式分布式; 容错性 ... 事务性; 高性能; 资源管理.

Vivek发布于2018/06/20 00:00

注脚

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

user picture
  • Vivek
  • A qualified chemist who somehow drifted into web development.

相关Slides

  • 大规模实践基于Docker的MySQL私有云平台。集成高可用、快速部署、自动化备份、性能监控、故障分析、过载保护、扩容缩容等多项自动化运维功能。数据库高可用是不容忽视的,在Docker容器分配时如何保障主从不在同一宿主机上呢?我们通过自研Docker容器调度平台,自定义Docker容器的分配算法。实现了MySQL的高密度、隔离化、高可用化部署。同时结合我们自研的数据库中间件,支持了分片集群及无感知的高可用切换功能。截止目前平台支撑了目前总量90%以上的MySQL服务(实际数量超过2000个),资源利用率提升30倍,数据库交付能力提升70倍。并且经受住了十一黄金周、春节票务业务高峰期的考验。未来将致力于数据库自动化向智能化的推进。

  • 在云时代的今天,企业数据库面临着复杂的选择,数据库异构迁移往往达不到预期效果,樊文凯想大家分享了ADAM数据库和应⽤用迁移(Advanced Database & ApplicationMigration, 以下简称ADAM),ADAM是阿里云结合阿里巴巴多年年内部业务系统数据库和应⽤用异构迁移的经验(去IOE),⾃自主研发的、迁移ORACLE数据库和应⽤用⾄至阿⾥里里云相关云产品的专业产品,分享了ADAMA的结构、高性能、数据库割接、智能分析、所用的生态工具等,典型的数据库中出现的痛点。

  • 主要介绍阿里云MongoDB服务使用上的一些最佳实践,以及对MongoDB的部署、参数调优

  • Lindorm 是新一代面向在线海量数据处理的分布式数据库,阿里的技术专家通过分享这些多种场景下的数据存储技术实践,帮助企业更好地理解各种数据存储技术的特点,针对自己的业务发展对数据存储技术进行选择和组合。