项目需求
-
这个项目属于哪个行业?
- 工业化大数据平台
- 行业:加油站服务商运营数据分析平台
-
为什么要做这个项目?
- 基于所有设备的安装、维修、巡检、改造的工单数据,辅助公司的运营,提高服务质量,做合理的成本预算
-
这个项目具体需求是什么?
- 提高服务质量,做合理的成本预算
- 需求一:对所有工单进行统计分析
- 安装工单、维修工单、巡检工单、改造工单、回访分析
- 需求二:付费分析、报销分析
- 安装人工费用、安装维修材料费用、差旅交通费用
-
目标:掌握加油站设备维护的主要业务流程
-
实施流程图
* step1:加油站服务商联系呼叫中心,**申请服务**:安装/巡检/维修/改造加油机
* step2:呼叫中心联系对应服务站点,**分派工单**:联系站点主管,站点主管分配服务人员
* step3:服务人员**确认工单**和加油站点信息
* step4:服务人员在指定日期到达加油站,进行**设备检修**
* step5:如果为安装或者巡检服务,安装或者巡检成功,则服务完成
* step6:如果为维修或者改造服务,需要向服务站点**申请物料**,物料到达,实施结束,则**服务完成**
* step7:服务完成,与加油站站点服务商确认服务结束,完成**订单核验**
* step8:工程师**报销**过程中产生的费用
* step9:呼叫中心会定期对该工单中的工程师的服务做**回访**
-
小结
- 掌握加油站设备维护的主要业务流程
- 工单分析、费用分析、物料分析、回访分析
技术选型
-
目标:掌握加油站服务商数据运营平台的技术选型
-
实施
-
数据生成:业务数据库系统
- Oracle:工单数据、物料数据、服务商数据、报销数据等
-
数据采集
- Sqoop:离线数据库采集
-
数据存储
- Hive【HDFS】:离线数据仓库【表】
-
数据计算
- SparkCore:类MR开发方式【写代码调用方法函数来处理:面向对象 + 面向函数】
- 对非结构化数据进行代码处理
- 场景:ETL
- SparkSQL:类HiveSQL开发方式【面向表】
- 对数据仓库中的结构化数据做处理分析
- 场景:统计分析
- 开发方式
- DSL:使用函数【DSL函数 + RDD函数】
- SQL:使用SQL语句对表的进行处理
- 功能:离线计算 + 实时计算
- 注意:SparkSQL可以解决所有场景的分布式计算,离线计算的选型不仅仅是SparkSQL
- SparkSQL/Impala/Presto
- 使用方式
- Python/Jar:spark-submit
- ETL
- ThriftServer:SparkSQL用于接收SQL请求的服务端,类似于Hive的Hiveserver2
- PyHive :Python连接SparkSQL的服务端,提交SQL语句
- JDBC:Java连接SparkSQL的服务端,提交SQL语句
- spark-sql -f :运行SQL文件,类似于hive -f
- beeline:交互式命令行,一般用于测试
- Python/Jar:spark-submit
- SparkCore:类MR开发方式【写代码调用方法函数来处理:面向对象 + 面向函数】
-
数据应用
- MySQL:结果存储
- Grafana:数据可视化工具
-
监控工具
- Prometheus:服务器性能指标监控工具
-
调度工具
- AirFlow:任务流调度工具
-
-
小结
-
本次项目的技术架构是什么?
- Lambda架构:离线计算层 + 实时计算层 + 数据服务层
-
项目中用到了哪些技术?
-
数据生成:Oracle
-
数据采集:Sqoop
-
数据存储:Hive
-
数据处理:SparkSQL
-
数据应用:MySQL + Grafana
-
数据监控:Prometheus
-
任务调度:AirFlow
-
版本控制:Git + Gitee
-
资源容器:Docker
-
-
Docker的使用
-
目标:了解docker的基本使用
-
container管理
-
列举container
#列举所有的 docker ps -a #列举正在运行的 docker ps -
进入container
docker exec -it Name bash # 运行 hadoop、hive、spark、oracle、sqoop docekr exec -it hadoop bash docekr exec -it hive bash docekr exec -it spark bash docekr exec -it oracle bash docekr exec -it sqoop bash -
退出container
exit -
删除container
docker rm ……
-
项目环境配置
-
目标:根据需求实现项目环境配置
-
配置本地映射
-
配置Windows上的映射,方便使用主机名访问【把以前的有冲突的注释掉】
# 位置:C:\Windows\System32\drivers\etc\ 下,hosts文件 192.168.88.100 oracle.bigdata.cn 192.168.88.100 hadoop.bigdata.cn 192.168.88.100 hive.bigdata.cn 192.168.88.100 mysql.bigdata.cn 192.168.88.100 node1
-
项目环境测试:Oracle
-
目标:实现项目Oracle环境的测试
-
实施
-
启动
docker start oracle -
进入
docker exec -it oracle bash -
连接
#进入客户端命令行:/nolog表示只打开,不登录,不用输入用户名和密码 sqlplus /nolog #登陆连接服务端:/ as sysdba表示使用系统用户登录 conn / as sysdba -
测试
select TABLE_NAME from all_tables where TABLE_NAME LIKE 'CISS_%'; -
退出
exit -
远程连接:DBeaver、DG
-
创建连接
- SID:helowin
-
用户名:ciss
- 密码:123456
-
-
关闭
docker stop oracle
-
项目环境测试:MySQL
-
目标:实现项目MySQL环境的测试
-
实施
-
大数据平台中自己管理的MySQL:两台机器
- 存储软件元数据:Hive、Sqoop、Airflow、Oozie、Hue
- 存储统计分析结果
-
注意:MySQL没有使用Docker容器部署,直接部署在当前node1宿主机器上
-
启动/关闭:默认开启自启动
-
远程连接:使用命令行客户端、Navicat、DBeaver、DG都可以
- 用户名:root
- 密码:123456
-
项目环境测试:Hadoop
-
目标:实现项目Hadoop环境的测试
-
实施
-
启动
docker start hadoop -
进入
docker exec -it hadoop bash -
查看进程
jps -
启动进程
start-dfs.sh start-yarn.sh mr-jobhistory-daemon.sh start historyserver -
访问页面
# hadf 访问路径 node1:50070 # yarn 访问路径 node1:8088 # 历史服务器 访问路径 node1:19888 -
退出
exit -
关闭
docker stop hadoop
-
项目环境测试:Hive
-
目标:实现项目Hive环境的测试
-
实施
-
启动Hive容器
docker start hive -
进入Hive容器
docker exec -it hive bash source /etc/profile -
连接
beeline !connect jdbc:hive2://hive.bigdata.cn:10000 -
SQL测试
select count(1); -
关闭Hive容器
docker stop hive -
远程连接:DBeaver、DG
- 用户名:root
- 密码:123456
- 端口:10000
- 需要替换驱动
-
项目环境测试: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
-
* 测试
beeline -u jdbc:hive2://spark.bigdata.cn:10001 -n root -p 123456
select count(1);
* 关闭Spark容器
docker stop spark
* 远程连接:DBeaver、DG
* 用户名:root
* 密码:123456
* 端口:10001
* **需要替换驱动**
项目环境测试:Sqoop
-
目标:实现项目Sqoop环境的测试
-
实施
-
启动Sqoop容器
docker start sqoop -
进入Sqoop容器
docker exec -it sqoop bash source /etc/profile -
测试
sqoop list-databases \ --connect jdbc:oracle:thin:@oracle.bigdata.cn:1521:helowin \ --username ciss \ --password 123456 -
关闭Sqoop容器
docker stop sqoop
-