项目概况与技术方案

发布时间 2023-08-16 21:00:55作者: nangk

项目概况与技术方案

概述

​ 该项目是一个针对用户行为日志分析的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的计算模式,因此每日会计算前一天的数据。