type
status
date
slug
summary
tags
category
icon
password
记录B站大数据项目的复现
📝 技术选型
Oracle离线数据处理
- 数据来源:Oracle 包括【CRM系统、客服系统、报销系统信息】 数据量: 数据内容
- 数据采集:Sqoop
- 数据存储:Hive数据库
- 数据计算:SparkSQL【离线+实时、DSL+SQL】
- 数据应用:MySQL+Grafana
- 调度工具:Airflow
- 服务监控:Prometheus
- 资源容器:Docker
用户访问日志处理
- 实时统计前10名流量最高的业务信息
- 可视化图表展示实时统计结果
- 统计一天中用户访问业务最多的时间段

- 统计用户访问最多的业务网站


使用Sqoop增量采集离线数据,对于实时数据使用Flume+Kafka构建数据传输层。
使用FLume+Kafka构建数据传输层,Flume可以将大量日志数据从许多不同源(两个centos服务器节点)进行收集、聚合,最终移动到一个集中的数据中心(centos03)进行存储;Kafka基于Zookeeper,高吞吐量低延迟分布式实时处理消息,在本模块作为消息中间件进行日志的中转。
大数据项目使用 HDFS、HBase、Hive 和 MySQL 构成数据存储层。。
HDFS、HBase、Hive、MySQL构成数据存储层。Hive是一个基于hadoop的数据仓库架构,使用SQL语句读写管理大型分布式数据集,可以将SQL语句转换为MapReduce任务执行,MySQL用于存储用户行为数据的计算结果。
数据计算层的核心是 Spark 计算引擎。
Spark引擎为数据计算层核心,Spark SQL可以结合HBase进行数据查询和分析,Spark streaming可以进行实时数据流的处理。
服务层:使用 JavaWeb 构建系统顶层服务,方便用户通过浏览器访问系统、查看分析结果等。将数据计算层的分析结果存储于关系数据库 MySQL中,JavaWeb 程序只需读取 MySQL中的结果数据进行展示即可。
接口层:服务层使用 JavaWeb 获取结果数据后,需要使用前端技术展示在浏览器的网页中,便于用户查看。若需要实时展示最新结果数据,则需要使用 WebSocket 技术。WebSocket 是基于 TCP 的一种新的网络协议,它可以使客户端和服务器之间的数据交换变得更加简单,允许服务器端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输从而实现数据的前端实时展示。
分布式集群构建
- 集群软件规划

- 离线数据上传和处理
使用Docker bridge模式创建网络。建立了5个容器。分别为spark容器、sqoop容器、hive容器、hadoop容器、oracle容器

划分主题域:
- 工单主题
- 回访主题
- 物料主题

明确指标统计:
- 工单主题:安装工单个数、维修工单个数……
- 回访主题:用户满意个数、不满意个数、服务态度不满意个数、技术能力不满意个数
项目数据流设计

三个节点。
1.其中01节点和02节点负责产生日志。产生日志的每台服务其上安装Flume进行日志采集,然后把各自采集到的日志数据发送给同一个FLume服务器(03)节点进行日志合并;
2.将合并后的日志数据以副本的方式分成两路(两路数据一致):一路进行实时计算,另一路进行离线计算。降雪要实时计算的数据发送到实时消息系统Kafka进行中转,将需要离线计算的数据存储到HBase分布式数据库中;
3.使用Spark Streaming作为Kafka的消费者,按批次从Kafka中获取数据进行实时计算,并将计算结果存储于MySQL关系数据库中;
4.使用SparkSQL查询HBase中的数据进行离线数据,将计算结果存储于MySQL关系数据库中;
使用WebSocket实时获取MySQL中的数据,通过可视化组件展示流量最高的前10项业务
- Author:NotionNext
- URL:https://tangly1024.com/article/144df6db-5286-80d9-86cc-ff0629be61f9
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts