Skip to content

Commit d6ed57a

Browse files
committed
docs:更新spark streaming专栏
1 parent 38a30f3 commit d6ed57a

File tree

3 files changed

+139
-1
lines changed

3 files changed

+139
-1
lines changed

docs/.vuepress/config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -981,7 +981,9 @@ module.exports = {
981981
collapsable: false,
982982
sidebarDepth: 0,
983983
children: [
984-
"00-为啥要学习Spark Streaming.md",
984+
"00-为啥要学习Spark Streaming",
985+
"01-Spark Streaming专栏概述",
986+
"02-Spark Streaming小试流式处理",
985987
]
986988
},
987989
],
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# 01-Spark Streaming专栏概述
2+
3+
## 1 实战目标
4+
5+
- 至今专栏的访问量
6+
- 至今从搜索引擎引流过来的专栏的访问量
7+
8+
## 2 实战流程
9+
10+
![](https://codeselect.oss-cn-shanghai.aliyuncs.com/image-20240325162624421.png)
11+
12+
## 3 可视化显示
13+
14+
- 使用Spring Boot整合Echarts
15+
- 阿里云DataV数据可视化框架
16+
17+
## 4 教程概要
18+
19+
- 初识实时流处理
20+
- 日志收集框架Flume
21+
- 消息队列Kafka
22+
- 实战环境搭建
23+
- Spark Streaming入门
24+
- Spark Streaming进阶
25+
- Spark Streaming集成Kafka
26+
- Spark Streaming集成Flume
27+
28+
## 5 计划
29+
30+
- 整合Flume、Kafka、 Spark Streaming打造通用的流处理平台基础
31+
- Spark Streaming项目实战
32+
- 数据处理结果可视化
33+
- 拓展
34+
35+
## 6 前提
36+
37+
- 熟悉Linux基本命令
38+
- 熟悉Scala/Python/Java
39+
- 有Hadoop和Spark基础
40+
41+
## 7 环境
42+
43+
- JDK : 1.8
44+
- Hadoop: CDH ( 5.7 )
45+
- Scala : 2.12
46+
- Spark: 2.4.1
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# 02-Spark Streaming小试流式处理
2+
3+
## 1 业务分析
4+
5+
### 1.1 需求
6+
7+
统计主站每个(指定)教程访问的客户端、地域信息分布
8+
9+
地域: ip转换 Spark SQL项目实战
10+
客户端:useragent获取 Hadoop基础教程
11+
12+
=》如上两个操作:采用离线(Spark/MapReduce )的方式进行统计
13+
14+
### 1.2 实现步骤
15+
16+
课程编号、ip信息、useragent
17+
进行相应的统计分析操作: MapReduce/Spark
18+
19+
### 1.3 项目架构
20+
21+
日志收集: Flume
22+
离线分析: MapReduce/Spark
23+
统计结果图形化展示
24+
25+
看起来很简单,没什么高深的,但是现在需求改了嘛,很正常的骚操作对不对!
26+
现在要求实时的精度大幅度提高!那么现在的架构已经无法满足需求了!
27+
28+
#### 1.3.1 问题
29+
30+
小时级别
31+
10分钟
32+
5分钟
33+
1分钟
34+
秒级别
35+
根本达不到精度要求!
36+
37+
实时流处理,应运而生!
38+
39+
## 2 实时流处理产生背景
40+
41+
◆ 时效性高
42+
◆ 数据量大
43+
44+
◆ 实时流处理架构与技术选型
45+
46+
## 3 实时流处理概述
47+
48+
- 实时计算:响应时间比较短。
49+
- 流式计算:数据不断的进入,不停顿。
50+
- 实时流式计算:在不断产生的数据流上,进行实时计算
51+
52+
## 4 离线计算与实时计算对比
53+
54+
### 4.1 数据来源
55+
56+
离线:HDFS历史数据,数据量较大。
57+
实时:消息队列(Kafka),实时新增/修改记录实时过来的某一笔数据。
58+
59+
### 4.2 处理过程
60+
61+
离线:Map + Reduce
62+
实时:Spark(DStream/SS)
63+
64+
### 4.3 处理速度
65+
66+
离线:速度慢
67+
实时:快速拿到结果
68+
69+
### 4.4 进程角度
70+
71+
离线:启动 + 销毁进程
72+
实时: 7 * 24小时进行统计,线程不停止
73+
74+
## 5 实时流处理架构与技术选型
75+
76+
77+
78+
![](https://codeselect.oss-cn-shanghai.aliyuncs.com/image-20240325181502403.png)
79+
80+
- Flume实时收集WebServer产生的日志
81+
- 添加Kafka,进行流量消峰,防止Spark/Storm崩掉
82+
- 处理完数据,持久化到RDBMS/NoSQL
83+
- 最后进行可视化展示
84+
85+
Kafka、Flume一起搭配更舒服哦~
86+
87+
## 6 实时流处理应用
88+
89+
- 电信行业:推荐流量包
90+
- 电商行业:推荐系统算法

0 commit comments

Comments
 (0)