说明

讲师:首席架构师 李智慧

大数据平台

大数据技术应用的挑战

大数据计算的海量分布式计算方案,必然导致计算速度不是很快,即使在一个规模不太大的数据集上进行一次简单计算,MapReduce 也可能需要几分钟,Spark 快一点,也至少需要数秒的时间。

互联网产品处理用户请求,通常需要毫秒级的响应,也就是说,要在 1 秒内完成计算,大数据计算必然不能实现这样的响应要求。但是互联网应用又需要使用大数据,实现统计分析、数据挖掘、关联推荐、用户画像等一系列功能。

那么如何才能弥补互联网和大数据之间的差异呢?

大数据平台架构

在这里插入图片描述
蓝色部分归属于大数据平台范围。

大数据处理流程:

  1. App、浏览器的用户数据、日志、打点采集的数据、爬虫的数据存储到数据库;
  2. 数据同步系统,比如消息队列导入到大数据存储系统 HDFS;
  3. 大数据计算, 通过 MapReduce, Spark, Hive计算,结果还是写到 HDFS 里面;实时流大数据处理 Stomr, Spark Streaming, Flink;
  4. 数据同步系统,导出数据到 数据库。实时流大数据流,可以订阅结果,实时输出分析报表,进行活动方案调整,比如双十一当天活动。
  5. 应用把结果导出报表,看看应用的bug在哪里,通知开发人员去解决;
  6. 数据监控把结果导出报表,看看业务是否有什么异常,如果有就要采取相应的策略;
  7. 运营决策把结果导出报表,看看运营策略效果如何,进行运行活动调整。

纠错: 数据处理层的批量数据同步,的头应该从 大数据存储(HDFS) 指出。

数据采集与导入

将应用程序产生的数据和日志等同步到大数据系统中,由于数据源不同,这里的数据同步系统实际上是多个相关系统的组合。数据库同步通常用 Sqoop,日志同步可以选择 Flume,打点采集的数据经过格式化转换后通过 Kafka 等消息队列进行传递。

不同的数据源产生的数据质量可能差别很大,数据库中的数据也许可以直接导入大数据系统就可以使用了,而日志和爬虫产生的数据就需要进行大量的清洗、转化处理才能有效使用。

用 Sqoop 导入导出数据库数据

批处理用 Sqoop
在这里插入图片描述

用 Canal 实时导入 MySQL 数据

处理 MySQL 数据,可以一条一条实时同步数据。
在这里插入图片描述
原理: Canal 把自己伪装为 MySQL的 Slave。

用 Flume 从日志导入数据

在这里插入图片描述

Flume 级联部署

在这里插入图片描述

Flume 分布式部署

在这里插入图片描述

前端埋点采集数据

在这里插入图片描述

  • 核心数据: 用户增加、流失等,实时上报;
  • 实时数据:用户操作数据,实时上报;
  • 离线数据:非核心数据,存储到手机本地,当连接 WiFi的情况下才上传;

网络爬虫收集外部数据

在这里插入图片描述
爬虫一般是爬取竞争对手,或者政府机构的数据。
重点是如何突破竞争对手的反爬虫系统。

数据输出与展示

大数据计算产生的数据还是写入到 HDFS 中,但应用程序不可能到 HDFS 中读取数据,所以必须要将 HDFS 中的数据导出到数据库中。数据同步导出相对比较容易,计算产生的数据都比较规范,稍作处理就可以用 Sqoop 之类的系统导出到数据库。

这时,应用程序就可以直接访问数据库中的数据,实时展示给用户,比如展示给用户关联推荐的产品。淘宝卖家的量子魔方之类的产品,其数据都来自大数据计算产生。

除了给用户访问提供数据,大数据还需要给运营和决策层提供各种统计报告,这些数据也写入数据库,被相应的后台运营和管理人员访问,查看数据报表,看业务是否正常。

大数据平台 Lamda 架构原型

在这里插入图片描述

淘宝大数据平台

在这里插入图片描述

淘宝大数据平台导入导出数据

在这里插入图片描述

美团大数据平台

在这里插入图片描述

  • 数据源:Kafka消息队列之前,竞争对手抓取平台;
  • 实时数据处理: Storm 流式计算;
  • 离线数据处理: Camus 日志导出的中间那块;
  • 大数据引擎的结果:DM DB,HBASE;
  • 存储结果:查询中心;
  • 调度系统:上面的流程由调度系统协调。

嘀嘀实时大数据平台

在这里插入图片描述

物联网平台

物联网架构

在这里插入图片描述

物联网大数据平台

在这里插入图片描述

总结

5G 在物联网应用会特别大,因为数据量特别大,可能带来的产值会跟互联网是同一个数量级的。5G 可能会带来未来的产业革命。架构师要关注新技术,能带来的技术革命。

GitHub 加速计划 / ca / canal
28.22 K
7.57 K
下载
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:3 个月前 )
1e5b8a20 - 2 个月前
ff82fd65 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐