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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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