近日,TalkingData研发副总裁 – 阎志涛出席2015 ArchSummit全球架构师峰会深圳站,其演讲主题为《移动大数据平台实践》。
移动互联网大数据特点:
- Volume
随时随地都在产生数据,数据量更大
- Variety
随时随地联网的特性,使得移动互联网的数据更具有多样性。在移动 侧可以有更为精准的位置数据,各种传感器数据。
- Velocity
对速度处理的要求性更高,很多的业务场景需要更实时的数据处理才能使得数据产生价值。
- Value
更多高价值的数据产生
- 万物皆可联网,数据方便人的生活–IOT逐渐成为现实,万物都在贡献数据–各种智能硬件逐渐普及
- IOT逐渐成为现实,万物都在贡献数据
- 各种智能硬件逐渐普及
数据相关产品:
- 2011年– App Analytics
- 2012年– AdTracking
- 2013年– Game Analytics
- 2014年– Data Center, Mobile DMP, MobileInsight
- 2015年– DataSync……
早期的架构:
面临的挑战:
- 研发团队完全按照业务线组织,多个竖井
- 很多能力没有服务化,重复建设
面临的挑战:
- 整个架构为统计分析业务而生
- 未来更多的数据业务
–纯粹竖井模式很难支持新业务的开展
- 更多的数据价值探索的需求
–纯粹竖井模式很难深入了解技术
- 更多的数据(Bigger than Bigger)
–纯粹竖井模式不利于资源的合理利用
- 没有统一的数据视图
架构升级- TD移动大数据管理平台(π系统)
- 整合多产品线的基础服务
–统一存储
–统一计算
–统一数据总线
–统一数据挖掘
–统一视觉呈现
–统一数据收集
–统一SDK
–统一监控和管理
- 更好的水平扩展能力
- 提供更灵活高效的技术支撑
–产品能迭代速度更快
–研究成果加速流动
π系统架构:
统一SDK:
- 新的统一的数据收取框架
- 业务层和基础层分离
- 非阻塞模式
- 处理各种异常
- 高效存储格式
统一数据收集系统:
- 利用C++,Node.js,基于lmdb的内存队列
- 支持分布式部署
- 数据收集系统支持存储转发
- 分布式收集节点和中心节点数据传输高压缩比
统一数据总线:
- 基于Kafka的数据总线
- 规范不同业务线的topic命名规则
- 统一的管理
统一存储:
- 数据域管理,多业务系统可以共享存储资源
- 数据文件按照时间进行切片
- 数据文件时效管理,中间数据可以自动删除
- 数据自动归档
- Parquet列式存储格式,方便数据计算
- 计划支持数据EC(ErasureCoding)
- 分布式缓存Tachyon
- 开发Bitmap存储,bitmap基本运算下沉到存储层,底层基于RocksDB
- MongoDB3.0(WiredTiger引擎),基于SSD
- Redis
- MySQLCluster(MariaDB,TokuDB)
- WebScaleSQL
- 基于Hcatalog进行二次开发
- 支持不同数据源
- 支持json,protobuffer等数据格式
- 支持版本
- 基于Yarn进行计算资源调度(调研Mesos)
- 基于Spark的并行计算框架
- 基于预先生成Bitmap的OLAP解决方案
- 利用SparkStreaming进行流式计算
- 自行开发的任务调度系统
- 统一的计算查询接口
统一的数据挖掘:
- 基于统一计算框架
- 针对Spark,自行实现了LR,DT等数据挖掘算法库
- 将数据挖掘服务化,变成统一计算的一种能力
统一的视觉呈现:
- 视觉呈现组件化
- 支持各种自定义报表
- 支持各种数据可视化效果
统一监控:
- 基于Zabbix开发
- 支持CPU、内存、硬盘、网络以及进程运行状态等等的监控
- 支持短信、邮件、微信报警
看上去很美好,但是,罗马不是一天建成的!!
- 接收请求的Collector机器只有两个
- Nginxupstream 配置fall=1
- 统一Kafka数据总先后,数据压力大后,各业务系统相互影响
- 对Kafka了解不足
- 对压力预估不足
- 新版本Spark不能使用
带来的好处:
- 更方便的增加新的数据业务
- 术业有专攻,工程师可以更深入的了解技术
- 资源可以更合理的进行配备