小米统计的亿级大数据实时分析平台


小米统计的亿级大数据 实时分析平台 欧阳辰 内容提要 • 小米大数据框架和应用 • 小米统计架构和挑战 • 小米HBase的改进 • 小米统计2.0和技术选型 • 数据统计分析的领悟 我是谁? 欧阳辰 >15年的软件研发老兵 广告平台,大数据 10年 公众号: www.ouyangchen.com 3年 7年 2年 小米的大数据技术框架 数据采集 数据存储 数据管理 数据分析 算法 可视化 Scribe ETL HDFS HBASE Kafka Hue Kerberos MapReduce Spark Strom Hive Impala 机器学习 自然语言 数据挖掘 统计分析 JavaScript E-Charts H5/App Zookeeper Druid KUDU 小米大数据应用 •点击预估 •人群画像 •营销DMP •精准营销 广告营销 搜索和推荐 互联网金融 精细化运营 防黄牛 图片分析和处理 小米深度学习平台 智 能 助 手 云 相 册 广 告 金 融 搜 索 推 荐 深度学习任务管理 TensorFlow GPU集群管理 Kubernetes+Docker GPU 机器 GPU 机器 GPU 机器 GPU 机器 GPU 机器 GPU 机器 存储服务 HBase/HDFS 计算服务 Spark/Storm/ MR 小米深度学习平台 业务 公有云 私有云 小米统计.数据服务 • 移动App精细化运营 • 日活超过千万的App有 21款 • 多平台:安卓,iOS,电视, 网页等 • 数据洞察和服务 • 行业指标 • 洞察分析 • 画像服务 • 小米生态链协同发展 http://dev.xiaomi.com 整体的架构图-Lambda架构 L V S Nginx SSL加速 卡 FE Server Kafka Storm Scribe/HDFS Spark/MR Web APP 中间结果 HBase/NoSQL 每天数据数据规模: 1. 几十Tera-bytes的原始数据 2. 数百亿总事件 3. 峰值20万请求/秒 Redis 成长的痛苦:流量数据的疯狂增长 • 分时计算,保存中间数据 • 灵活选择Spark 还是 MR脚本 • 能流式计算,就流式计算 • Storm难调试,但也很稳定 • 数据按照业务分片,流动不同业务区域 • 容错而不失大局观 ,例如HDFS读错误 • 用硬件获得收益:SSL加速卡,SSD存储等 • 用开源软件快速扩展:Druid, Crate.io 小米大数据实时分析场景案例 http://dev.xiaomi.com 为什么青睐HBase? • 天⽣为了⼤数据 • 改变Schema的时候平滑 • 扩容⽅便 • 成本考虑 • Facebook等成功案例 • ⼀些重要的Feature • CheckAndPut • Increment原⼦性 • RowKey TTL • 单RegionServer内的强⼀致 • ⾼I/O 我们有三位HBase Committer! HBase 在小米的改进 名字服务 局部二级索引 Salted Table 支持 HTable 支持多集群多表 自动Metrics统计和收集 跨表跨行事务 HBase Client 强类型 透明局部二级索引 对象关系映射 结构化 API HBase 在小米的改进 • 单机多实例,减小Heap大小 • BucketCache(Heap + Offheap) • Compaction 限速 • Read/Write Quota限制 • Table/CF粒度的Replication限速 • 在线更新集群配置 • 新的HLog写模型 • 根据业务选择存储介质(磁盘/SSD) HBase服务器端的演进 • 基于社区的Release版本+小米修改,不断测试 和“躺坑” • 积极修复反馈社区 • 定期跟进社区最新版本,与社区同步 HBASE 版本 0.94.3 0.94.11 0.98.x 小米 版本 mdh 1.1x mdh 1.2x mdh 2.0x 从MySQL 平滑迁移到HBASE 1. 双写HBase和MySql 2. 迁移历史数据(使⽤用 ⽼老的 时间戳) 3. 双读HBase和MySql, 验 证数据⼀一致性 4. 灰度返回HBase结果 APP MySQL HBase 移动App统计2.0 指标名称 用户 累计总用户数 新增用户数 升级用户 日活用户数 启动次数 人均启动次数 周活用户数 月活用户数 次日留存率 3日留存率 7日留存率 30日留存率 使用时长 用户使用时长分布 单次使用时长分布 人均使用时长 次均使用时长 页面 渠道 版本 访问次数 访问人数 自定义事件 字符串属性事件 数值属性事件 计数事件 计算事件 用户群 错误分析- 错误次数 错误分析-错误率 错误分析-报错设备数 错误分析-报错设备占比 网络监控-请求数 ……. 指标 维度 版本 渠道 时间 用户群分组 地域 机型 … 海量自定义事件 维度 中间结果可查询 精准AB测试 生命价值分析 http://dev.xiaomi.com 整体的架构图-Lambda架构 2.0 L V S Nginx SSL加速 卡 FE Serve r Kafka Storm Scribe/HDFS Spark/MR Web APP 中间结果 HBase/NoSQL Redis DRUID Crate.Io (Evaluating) Web APP (自定义查 询) 实时 DRUID 分析数据库 特点 • 为分析而设计 • Druid是为OLAP工作流的探索性分析而构建。它支持各种filter、aggregator 和查询类型,并为添加新功能提供了一个框架。用户已经利用Druid的基 础设施开发了高级K查询和直方图功能。 • 交互式查询 • Druid的低延迟数据摄取架构允许事件在它们创建后毫秒内查询,因为 Druid的查询延时通过只读取和扫描优必要的元素被优化。Aggregate和 filter没有坐等结果。 • 高可用性 • Druid是用来支持需要一直在线的SaaS的实现。你的数据在系统更新时依 然可用、可查询。规模的扩大和缩小不会造成数据丢失。 • 可伸缩 • 现有的Druid部署每天处理数十亿事件和TB级数据。Druid被设计成PB级别。 Druid Architecture *Pinot , PowerDrill , Dremel Pinot Components Architecture Apache Kylin 麒麟 :eBay的分析引擎 几种开源MOLAP分析工具的比较 DRUID Pinot kylin 使用场景 实时处理分析 实时处理分析 OLAP分析引擎 开发语言 JAVA JAVA JAVA 接口协议 JSON JSON OLAP/JDBC 发布时间 2011 2015 2015 Sponsor MetaMarkets /Imply.Io LinkedIn eBay 技术 实时聚合 实时聚合 预处理,Cache Crate.io -Power by Lucence -支持SQL查询 -语法解析,查询和聚合 -超级灵活,水平扩展 数据分析的需求是一个无底洞 • Fresh(快):Streaming Oriented • Free(灵活): Build a platform with customized Query • Fact(事实): 任何预测值都是难以理解的 • Friendly: 交互容易,可视化 下一步的架构演化 • 系统的扩展性—Docker • 可控制和竞争性的成本 • 集成一些分析算法模型 • 数据演义人工智能 道 阻 且 长 , 行 则 将 至 谢谢!
还剩26页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

dt_zga

贡献于2018-07-17

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf