该篇是记录模块三大数据平台与系统集成相关
使用大数据的方面概括:
统计分析 —> 数据挖掘 —> 关联推荐 —> 用户画像
传统的计算方式如 MapReduce 可能需要几分钟,Spark 需要几秒钟,而实际的互联网产品通常需要毫秒级的响应,因此需要构建相应的大数据平台
大数据平台:整合网站应用与大数据系统之间的差异,将应用程序产生的数据导入到大数据系统,而经过处理计算后再导出给应用程序,相当于中间粘合剂的作用
大数据平台组成部分
大数据平台由上到下,可以分为三个部分:数据采集、数据处理、数据输出与展示。
数据采集
将应用程序产生的数据与日志同步到大数据系统中
- 数据库同步通常采用 Sqoop,将 Hadoop 和关系型数据库中的数据相互转移
- 日志同步采用 Flume 收集数据
- 打点采集数据通过 Kafka 等消息队列进行传递
日志和爬虫产生的数据需要进行大量的清洗、转化处理
数据处理
这部分是大数据存储与计算的核心
- 离线计算:MapReduce、Hive、Spark 等进行的计算,比如关联性挖掘
- 流式计算:Storm、Spark Streaming 等进行秒级及毫秒级别的计算,比如是订单处理
数据输出与展示
大数据计算产生的数据 —> 写入 HDFS 中 —> 导出到数据库中(使用 Sqoop 等工具) —> 应用程序读取数据
数据一般是有三个用途:
- 应用程序界面展示(业务使用)
- 运营与管理人员
- 决策层提供统计报告
大数据平台架构 Lambda 架构
上一节所讲述的大数据平台主要是 Lambda 架构,这个架构原型主要包含以下几个方面。
- 批处理大数据层(batch layer):数据存储与计算的地方
- 流处理大数据层(speed layer):进行即时计算,快速得到结果
- 服务层(serving layer):批处理层得到的结果输入到此层,供使用者查询访问
总结:
大数据平台的主要组成部分数据导入、作业调度、数据导出等三个部分
大数据的来源
大数据平台的数据来源主要有数据库、日志、前端程序埋点、爬虫系统。
从数据库导入
关系数据库 —> 类比大数据技术 —> Hive、Spark SQL、Impala的出现
如何将数据从关系数据库导入到大数据平台上?
数据库导入工具:
- Sqoop:数据库批量导入导出工具,主要是批量
- Canal:实时导入数据,是阿里开源的 MySQL binlog 的获取工具
从日志文件导入
日志中包含程序执行状况,也记录了用户的业务处理轨迹。
大数据日志收集常用工具:Flume
Flume 的架构主要有:
- web server
- Agent
- Source
- Channel
- Sink
- HDFS、HBase
前端埋点采集
互联网前端包含:
- App程序(iOS 或者 Android)
- PC Web 前端
- H5 前端
- 微信小程序
埋点的方式包含:
- 手工埋点:开发前端数据上报 SDK,前端工程师调用 SDK
- 自动化埋点:通过前端程序的 SDK,自动全量收集用户操作事件,也称为无埋点
- 可视化埋点:可以人工干预的自动化埋点,也就是包含可视化的配置文件进行配置哪些需要埋点
爬虫系统
通过网络爬虫收集获取外部数据,比如竞争对手的数据,通常被禁止爬虫的数据才是有价值的数据,才是真正需要的数据
- 如何应对反爬虫技术
- 参数加密等
总结
数据处理的过程实际上就是熵减的过程:
- 输入的数据:格式繁杂、数据量大、冗余信息多
- 输出的数据:数据结构性更好、用更少的数据包含更多的数据
人作为一个系统,从青壮到垂老,熵也不停增加。要想减缓熵增的速度,必须从外部吸收能量。
物质上: 合理饮食、锻炼身体;精神上,不断学习,参与有价值的工作。那些热爱生活、好好学习、积极工作的人是不是看起来更年轻,而整日浑浑噩噩的人则老的更快。
大厂大数据平台架构
业界常规的大数据平台架构方案,大部分还是基于大数据平台 Lamda 架构进行设计的。
淘宝大数据平台
基本分为三个部分
- 数据源与数据同步
- Oracle、MySQL、日志系统及爬虫数据等
- Gataway Servers
- DataExchange、DBSync 及 TimeTunnel 等
- 云梯( Hadoop 大数据集群)
- 大数据应用(使用大数据集群的计算结果)
此外淘宝的大数据平台的最左侧是天网调度系统,也是核心所在
美团大数据平台
- 数据源
- MySQL 数据库及日志
- Canal 获取 MySQL 的 binlog,日志通过 Flume 汇集
- 都使用 kafka 处理
- 大数据集群(使用kafka 的数据)
- 流式计算:Storm
- 批处理计算:Hive
- 将处理结果输出到查询系统 和 BI 平台
滴滴大数据平台
分为实时计算平台(流式计算平台)和离线计算平台(批处理计算平台)
- 实时计算平台
- 数据 ETL(Extract - Transform - Load ):使用 Spark Streaming 或 Flink 将数据萃取、转换和记录到 HDFS
- Druid:计算实时监控指标,将结果输出到报警系统和实时图表系统 DashBoard
- 离线计算平台
- 基于 Hadoop2(HDFS、Yarn、MapReduce)和 Spark 及 Hive 构建
- 调度系统:大数据作业的优先级和执行顺序
- 开发系统:可视化的 SQL 编辑器
- 实时计算机离线计算的结果都被保存在 HBase 中
商业大数据平台
典型的有 Cloudera 开发的商业大数据服务产品 CDH:Cloudera Distribution including Apache Hadoop
CDH 分为 4 层:系统集成,大数据存储,统一服务,过程、分析与计算。
- 系统集成
- 数据库服务用 Sqoop
- 日志导入导出用 Flume
- 其他实时数据导入导出用 Kafka
- 大数据存储
- 文件系统用 HDFS
- 结构化数据用 Kudu
- NoSQL 存储用 HBase
- 统一服务
- 资源管理用 Yarn
- 安全管理用 Sentry 与 RecordService
- 过程、分析与计算
- 批处理计算:MapReduce、Spark、Hive、Pig
- 流计算:Spark Streaming
- 快速 SQL 分析用 Impala
面向企业提供解决方案 —> 大数据云计算服务商
云计算大数据服务
云计算商业模式:
将大数据平台的各项基本功能以云计算服务的方式向用户提供,包含数据导入导出、数据存储与计算、数据流计算、数据展示提供相应的云计算服务
云计算厂商将大数据服务当做:
- IaaS:Infrastructure as a service,基础设施即服务
- PaaS:Platform as a service,平台即服务
- SaaS:Software as a Service,软件即服务
大数据开放平台
此类平台本身具有大量的数据,比如:
- 中国气象局拥有海量的历史天气数据
- 中国人民银行有大量的客户征信数据
- 阿里巴巴有海量的电子商务数据
风控大数据开放平台:结合用户数据及自身数据进行大数据计算,进行风险分析,提供风险指数
- 风控模型
总结
大数据已经进入了成熟期,技术及应用的垂直领域被逐渐细分,包含两个方面:
- 大数据技术生态已初步完善
- 大数据商业生态逐渐成型
大数据与物联网
未来 20 年最有发展潜力的三项技术分别是:区块链、人工智能、物联网 —马老板
华为的愿景:把数字世界带入每个人、每个家庭、每个组织,构造万物互联的智能世界。
物联网的想象空间:万物互联,所有的一切设备都是智能的
物联网应用场景
很多细分的垂直领域场景实现了物联网的初期模型
- 智能家居:最普及的物联网,例如小米生态链的所有家电,通过小米盒子进行联网控制
- 车联网:道路上的车辆之间、车辆与其他交通设施之间彼此通信,互相协作,构成一个网络
- 农业领域:土壤传感器探测土壤温度、数据上云,云端系统根据农作物远程控制农田的喷淋装置等
物联网平台架构
从左到右层次分别为:
- 终端传感器与智能设备、物联网应用程序:实时采集数据,移动网络数据上传
- 智能网关(边缘计算路由器):处在云计算的边缘,将数据进行初步计算处理,然后上传物联网云计算大数据平台
- 物联网云大数据平台:进行全局性计算并进行全局控制
物联网大数据平台是物联网的中心,包含这几个过程:
- 智能网关通过消息队列将数据上传到物联网大数据平台
- 数据清洗之后写入到大数据存储系统 HDFS、HBase 等
- 流式计算 Storm
- 离线计算 Spark
- 调用规则和机器学习模型,对上传数据进行计算,智能网关控制
- Spark 等离线计算引擎对数据定时批量计算处理进行全量的统计和机器学习,更新机器学习模型
- 应用程序通过设备管理器直接发送智能控制指令给智能网关,控制智能设备
这就是典型的 端-云-端 架构:
- 两个端:传感器与设备端、应用程序设备端
- 云:大数据云计算平台(关键节点)
智慧老师对物联网的理解:万物互联本身不是目的,让万物更智能,让生活更美好才是目的,而这些智能正是靠大数据技术实现的。