开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第一阶段):整体技术流程-系统架构图】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/693/detail/12167
整体技术流程-系统架构图
内容简介
一、系统的架构
二、小结
一、系统的架构
图片剖析:
日志分析数据来自于网站日志,所以说我们需要在这块做一个补充:网站日志数据。通过我们的埋点采集等即可以把我们的数据给他收集。
所以,首先第一点,Nginx—Flumeagent 叫做数据的采集模块。那么采集模块保证了我们的项目能够有数据,那么收集数据之后,我们通常需要做预处理,我们把数据放在 HDFS 之后呢,用 mapreduce 来做一个数据预处理,所以这当中应该会涉及到下一个模块,叫做我们数据的预处理模块。
有些资料把它翻译成数据清洗模块,其实清洗只是我们预处理当中的一部分。那么预处理之后呢,我们需要数据入库,入至 Hive 中(这里的入库还是放至 HDFS 中),再需要进行数据分析,分析之后到 web 展现,即数据可视化。
如果以数据仓库平台来理解,上面为我们的临时存储层(ODS),中间是我们的核心 DW 数据仓库层,用来开展数据分析,最后数据可视化是我们的数据应用层。以上就是我们的系统架构图。
涉及的技术有:
相对于传统的BI数据处理,流程几乎差不多,但是因为是处理大数据,所以流程中各环节所使用的技术则跟传统BI完全不同:
数据采集:页面埋点 JavaScript 采集(从无到有,埋点就是在页面写入代码来进行用户数据收集);开源框架Apache Flume(传输过程收集,把收集到的数据上传至 HDFS 中)。
数据预处理: Hadoop MapReduce 程序。
数据仓库技术:基于 Hadoop 的数据仓库 Hive.
数据导出:基于 hadoop,的 sqoop 数据导入导出工具。(把数据从 hive 中分离导至 mysql 中进行加载展示)
数据可视化:定制开发 web 程序(echarts)。
整个过程的流程调度: hadoop 生态圈中的 Azkaban 工具。(为辅助工具,有些模块需要周期性执行,任务需要调度,这时需要 Azkaban 工具来完成。)
二、小结
以上软件组合起来,按照我们的数据流转流程就构成了我们项目的一个系统架构图。但要明确我们整个项目当中技术的核心是我们的数据入库,预处理,分析这一块,那么重点使用的软件是 hadoop 和 hive ,这两个软件也可以称之为离线的重中之重。
另外要明确我们其他的模块最终目的是保证整个项目的完整性和立体感,包括调度等。
最后系统架构图往小方面看是网络日志分析系统,往大方面则是外面所有离线项目的核心架构图,也就是说任何一个大数据的离线项目都可以在此架构图基础上做出延申,因为这当中并未涉及具体的业务,一套架构如果脱离了业务就可以是通用架构。