知识点01:课程目标
- 项目目标
- 项目1:在线教育
- 学习如何做项目,项目中大数据工程师要负责实现的内容和流程
- 学习数仓基础理论:建模、分层
- 项目2:一站制造
- 企业中项目开发的落地:代码开发
- 数仓的一些实际应用:分层体系、建模实现
- 内容目标
- 项目业务介绍:背景、需求
- 项目技术架构:选型、架构
- 项目环境测试
知识点02:项目背景
知识点03:项目需求
-
目标:掌握项目业务需求
- 这个项目属于哪个行业?
- 为什么要做这个项目?
- 这个项目的目的是什么?
-
实施
-
小结
- 这个项目属于哪个行业?
- 工业化大数据平台
- 行业:加油站服务商运营数据分析平台
- 为什么要做这个项目?
- 基于所有设备的安装、维修、巡检、改造的工单数据,辅助公司的运营,提高服务质量,做合理的成本预算
- 这个项目具体需求是什么?
- 提高服务质量,做合理的成本预算
- 需求一:对所有工单进行统计分析
- 需求二:付费分析、报销分析
知识点04:业务流程
知识点05:技术选型
-
目标:掌握加油站服务商数据运营平台的技术选型
-
实施
-
数据生成:业务数据库系统
- Oracle:工单数据、物料数据、服务商数据、报销数据等
-
数据采集
-
数据存储
-
数据计算
-
SparkCore:类MR开发方式【写代码调用方法函数来处理:面向对象 + 面向函数】
-
SparkSQL:类HiveSQL开发方式【面向表】
- 对数据仓库中的结构化数据做处理分析
- 场景:统计分析
- 开发方式
- DSL:使用函数【DSL函数 + RDD函数】
- SQL:使用SQL语句对表的进行处理
- 功能:离线计算 + 实时计算
- 注意:SparkSQL可以解决所有场景的分布式计算,离线计算的选型不仅仅是SparkSQL
- 使用方式
- Python/Jar:spark-submit
-
ThriftServer:SparkSQL用于接收SQL请求的服务端,类似于Hive的Hiveserver2
- PyHive :Python连接SparkSQL的服务端,提交SQL语句
- JDBC:Java连接SparkSQL的服务端,提交SQL语句
- spark-sql -f :运行SQL文件,类似于hive -f
- beeline:交互式命令行,一般用于测试
-
数据应用
- MySQL:结果存储
- Grafana:数据可视化工具
-
监控工具
-
调度工具
-
技术架构
-
小结
-
本次项目的技术架构是什么?
- Lambda架构:离线计算层 + 实时计算层 + 数据服务层
-
项目中用到了哪些技术?
-
数据生成:Oracle
-
数据采集:Sqoop
-
数据存储:Hive
-
数据处理:SparkSQL
-
数据应用:MySQL + Grafana
-
数据监控:Prometheus
-
任务调度:AirFlow
-
版本控制:Git + Gitee
-
资源容器:Docker
知识点06:Docker的介绍
-
目标:了解Docker的基本功能和设计
-
路径
- step1:生产环境的问题
- step2:容器的概念
- step3:Docker的设计
-
实施
-
Docker
-
Docker的设计
知识点07:Docker的网络
-
目标:了解Docker的网络管理设计
-
路径
- step1:问题
- step2:模式
- step3:选型
-
实施
-
问题
- Docker的本质在一个操作上虚拟了多个操作系统出来,那每个操作之间如何进行网络通信呢?
-
模式
-
host模式:每个虚拟系统与主机共享网络,IP一致,用不同端口区分不同虚拟系统
- **container模式**:第一个容器构建一个独立的虚拟网络,其他的容器与第一个容器共享网络
- **none模式**:允许自定义每个容器的网络配置及网卡信息,每个容器独立一个网络
- **bridge模式**:构建虚拟网络桥,所有容器都可以基于网络桥来构建自己的网络配置
-
选型
- 本次项目中使用bridge模式,类似于VM中的Net模式使用
-
管理
-
小结
知识点08:Docker的使用
-
目标:了解docker的基本使用
-
路径
- step1:docker管理
- step2:image管理
- step3:container管理
-
实施
-
docker管理
-
默认开机自启
-
了解即可,不用操作
-
启动服务
systemctl start docker
-
查看状态
systemctl status docker
-
关闭服务
systemctl stop docker
-
image管理
-
container管理
-
熟悉常用操作
-
创建并启动container:不用做
docker run --net docker-bd0 --ip 172.33.0.100 -d -p 1521:1521 --name oracle 3fa112fd3642
-
列举container
#列举所有的
docker ps -a
#列举正在运行的
docker ps
-
进入container
docker exec -it Name bash
-
退出container
exit
-
删除container
docker rm ……
-
小结
知识点09:Oracle的介绍
-
目标:了解Oracle工具的基本功能和应用场景
-
路径
- step1:数据库分类
- step2:Oracle的介绍
-
实施
-
数据库分类
-
RDBMS:关系型数据库管理系统
- 工具:MySQL、Oracle、SQL Server……
- 应用:业务性数据存储系统:事务和稳定性
- 特点:体现数据之间的关系,支持事务,保证业务完整性和稳定性,小数据量的性能也比较好
- 开发:SQL
-
NoSQL:Not Only SQL:非关系型数据库
- 工具:Redis、HBASE、MongoDB……
- 分类:KV、文档、时序、图……
- 应用:一般用于高并发高性能场景下的数据缓存或者数据库存储
- 特点:读写速度特别快,并发量非常高,相对而言不如RDBMS稳定,对事务性的支持不太友好
- 开发:每种NoSQL都有自己的命令语法
-
Oracle的介绍
-
小结
知识点10:集群软件规划
172.33.0.100 oracle.bigdata.cn
172.33.0.110 sqoop.bigdata.cn
172.33.0.121 hadoop.bigdata.cn
172.33.0.131 hive.bigdata.cn
172.33.0.133 spark.bigdata.cn
知识点11:项目环境导入
-
目标:实现项目虚拟机的导入
-
实施
-
step1:导入:找到OneMake虚拟机中以.vmx结尾的文件,使用VMware打开
-
step2:启动:启动导入的虚拟机,选择我已移动该虚拟机
知识点12:项目环境配置
- 重启网卡
```
systemctl restart network
```
- 查看是否修改成功
```
ifconfig
```
知识点13:项目环境测试:Oracle
-
step5:测试
-
关闭
docker stop oracle
-
小结
知识点14:项目环境测试:MySQL
知识点15:项目环境测试:Hadoop
- node1:19888
-
退出
exit
-
关闭
docker stop hadoop
-
小结
知识点16:项目环境测试:Hive
知识点17:项目环境测试:Spark
-
目标:实现项目Spark环境的测试
-
实施
-
启动Spark容器
docker start spark
-
进入Spark容器
docker exec -it spark bash
source /etc/profile
-
启动Thrift Server【默认已经启动】
start-thriftserver.sh \
--name sparksql-thrift-server \
--master yarn \
--deploy-mode client \
--driver-memory 1g \
--hiveconf hive.server2.thrift.http.port=10001 \
--num-executors 3 \
--executor-memory 1g \
--conf spark.sql.shuffle.partitions=2
知识点18:项目环境测试:Sqoop
要求
-
Python面向对象
-
Hive中建表语法
create [external] table tbname(
字段 类型 comment,
)
comment
partitioned by
clustered by col into N buckets
row format
stored as textfile
location
–conf spark.sql.shuffle.partitions=2
```
[外链图片转存中...(img-MmgHFYpc-1671433321118)]
知识点18:项目环境测试:Sqoop
要求
-
Python面向对象
-
Hive中建表语法
create [external] table tbname(
字段 类型 comment,
)
comment
partitioned by
clustered by col into N buckets
row format
stored as textfile
location
-
提前预习:EntranceApp.py