开发者学堂课程【大数据 Flink 实时旅游平台环境篇 2020版:环境篇之项目架构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/643/detail/10690
环境篇之项目架构
项目架构
作为一个平台型的项目,或者是其他一些与大数据相关的普通型项目都需要对项目进行分层。
分层的主要意义是让整个项目的流程更加的清晰。
1、数据收集层(数据采集层)
最底层的数据收集层,或者叫数据的采集层,用户在去做一些访问,或者是做各种行为操作的时候容易产生数据,有的可能产生这日志数据,或者是产生到某一个接口上,或者进入到 MySQL 管理数据库里,所以最下面的一层其实就是得到一些数据,这里面的数据需要被采集出来,而不是在这里面直接分析,因为直接分析不能形成实时的分析。
2、数据存储
数据收集完成之后,自然就是数据存储了,因为数据收集就是要把数据转存到另外一个地方去,存储数据的载体主要有 Kafka、ES、Redis、HDFS、Druid、Neo4j、Alluxio,这几个是作为大数据,尤其是在实时项目中比较常用的载体。
我们在此选择重点的去讲,Kafka 本身就是大数据公司的标配,作为数据通道,即用户的一些行为数据数据是可以转存到这里面中的,当然也可以通过日志的形式,就是把日志里面的数据的实时采集到里面来,然后去实时的处理;
ES 其实是一个快速查询的搜索引擎;Redis 也可以存储一些数据,然后通过数据也可以去完成辅助分析,主要用于存储一些分布式的文件。
3、计算引擎
作为一个计算引擎,Flink是当前最新的,也是相对来说比较火的实时统计搜索引擎。Spark、Kylin、Hive、Presto 也是大数据里面常用的一些数据处理引擎,Spark 是典型的批处理计算引擎,Kylin 是进行预处理的,然后还有 HIve 主要用于作数仓,Presto 主要适用于结构形式的查询。
另外平台强调的是数据挖掘,或者说深度学习,在此项目主要使用 Flink 计算引擎,其他加以了解即可。
4、平台管理
有了计算引擎,也有了数据之后,接下来就是平台管理。给平台完善流程,包括数仓的组建、任务调度、数据质量、元数据与血缘、资源管理、搜索引擎。
数仓本身就是一种问题的解决思路,也是一种流程、一种规范,所以说用它可以把数据分别存放,本次项目也会用到实时的具体流程;做一个项目或者做一个平台,肯定会有很多的任务,哪些任务需要首先去执行,哪些任务不需要立马执行,都要依靠任务的调度;
后续的数据质量、元数据血缘、资源管理、搜索引擎等等,都是对大数据平台进行管理的工具,这些工具很多采用的是第三方的,或者是一些开源的,数据质量用来保证数据的安全,数据的一致性、完整性以及数据的正确性等等;
元数据就是整个系统的平台,然后会有很多种类型的数据,形成一个链路,即所谓的血缘;平台肯定要有资源的管理;这些我们都可以去借助一些第三方的对资源进行监控和管理。
5、应用
完成了上述流程后,已经完全可以进行条理分析已经信息的调度,分析完成之后结果数据会被返回到结果库里,接下来就是数据的应用。数据的应用是整个数据分析的核心,但是从价值层面去考虑的话,最终没有达到应用层面,无论前面再怎么分析,其实都是没有意义的。应用其实也包括很多,比如BI可视化、用户画像,把用户分为重点用户、老用户、青年用户以及学生群体的用户等等,对客户种类进行分类;
还有广告、推荐,数据分析完成之后,一般都会基于用户画像来去做一些精准的营销或者说推荐,包括广告的投放;另外基于结果数据去进行具体的查询以及整个的流量计算。