项目概况与技术方案
项目概况与技术方案
概述
该项目是一个针对用户行为日志分析的T+1离线数仓项目;通过构建数仓分析,了解用户的活跃情况、交互情况、流量概况等信息。数仓通过云服务器集群进行部署,开发后端程序提供服务接口。参考《大数据之路:阿里巴巴大数据实践》,该数仓构建了ODS层、DWD层、DWS层、ADS层,以更好得处理数据流。该项目为学习模拟项目,数据源通过编写日志生成程序每日生成,并通过任务调度进入HDFS,以供后一日的数据分析。数据处理主要采用Hive Sql和Spark程序,还集成了其他组件例如Azkaban、Presto等。
技术选型
数据存储:HDFS、MySQL
数据运算:Hive/MapReduce、Spark Core/SQL/GraphX
OLAP引擎:Presto
元数据管理:Atlas
任务调度:Azkaban
Web后端技术选型:SpringBoot2.7.13、Lombok、presto-jdbc
Web前端技术选型:Vue、PrimeVue
资源管理:Docker、YARN
云服务器配置&组件
概述:集群由四台云服务器构成,配置信息及主要工作如下。
-
nanguaHost2:2核2G
主要负责Web端服务以及提供给集群提供MySQL服务。通过Docker部署了Delta-server(Web后端)、Nginx、MySQL8.x、MySQL5.x、Redis(没用到)、Minio(没用到)。
-
nanguaHost3:2核2G
部署了HDFS(NameNode、Sercondary NameNode、DataNode)和YARN(ResourceManager),主要负责集群的NameNode服务和ResourceManager服务,同时充当一个数据存储节点。
-
nanguaHost5:2核4G
部署了HDFS(DataNode)和YARN(NodeManager),主要负责数据存储和计算任务。
-
nanguaHost6:2核8G
部署了HDFS(DataNode)、YARN(NodeManager)、AzkabanWebServer、AzkabanExecutorServer、PrestoServer、Hive元数据服务,主要负责数据存储、计算任务、任务调度、OLAP引擎。
注:对于集群内部,相互之间的端口是全放开的。而暴露给外网的端口只有nanguaHost2:8080(DeltaWeb服务),nanguaHost3:9870(NameNode),nanguaHost6:8088(AzkabanWebServer)。集群内部的密码全是强密码。以上措施是为了防止蠕虫病毒入侵,惨痛的教训!。
整体架构规划
补充说明
- 由于没有可用的日志服务器,因此采用编写日志生成程序来模拟该步骤,该程序将由任务调度在凌晨1:00启动,生成近几百M的日志文件,并存储到HDFS。
- 该项目采用的是T+1的计算模式,因此每日会计算前一天的数据。