推动工业物联网发展:大数据项目实施与环境构建【篇一】
文章目录
工业大数据项目介绍及环境构建
01:专栏目标
- 项目目标
- 项目1:在线教育
- 学习如何做项目,项目中大数据工程师要负责实现的内容和流程
- 学习数仓基础理论:建模、分层
- 项目2:工业大数据
- 企业中项目开发的落地:代码开发
- 代码开发:SQL【DSL + SQL】
- SparkCore
- SparkSQL
- 数仓的一些实际应用:分层体系、建模实现
- 内容目标
- 项目业务介绍:背景、需求
- 项目技术架构:选型、架构
- 项目环境测试
02:项目背景
目标:了解项目应用背景
实施
工业
物理网:IOT(Internet Of Things)
工业物联网:IIOT(Industrial Internet of Things)
定义:指数以亿计的工业设备,在这些设备上装置传感器,连接到网络以收集和共享数据
发展
小结
了解项目应用背景
03:项目需求
目标:掌握项目业务需求
实施
项目行业:工业大数据
项目名称:加油站服务商数据运营管理平台
整体需求
基于加油站的设备安装、维修、巡检、改造等数据进行统计分析
支撑加油站站点的设备维护需求以及售后服务的呼叫中心数据分析
提高服务商服务加油站的服务质量
保障零部件的仓储物流及供应链的需求
实现服务商的所有成本运营核算
具体需求
报表
小结
这个项目属于哪个行业?
04:业务流程
目标:掌握加油站设备维护的主要业务流程
实施
小结
05:技术选型
目标:掌握加油站服务商数据运营平台的技术选型
实施
数据生成:业务数据库系统
数据采集
数据存储
数据计算
数据应用
监控工具
调度工具
技术架构
小结
本次项目的技术架构是什么?
项目中用到了哪些技术?
数据生成:Oracle
数据采集:Sqoop
数据存储:Hive
数据处理:SparkSQL
数据应用:MySQL + Grafana
数据监控:Prometheus
任务调度:AirFlow
版本控制:Git + Gitee
资源容器:Docker
06:Docker的介绍
目标:了解Docker的基本功能和设计
路径
实施
生产环境的问题
容器的概念
应用容器:将一个操作系统虚拟为多个操作系统,不同操作系统之间互相隔离
Docker
Docker的设计
定义:Docker是一个开源的应用容器引擎,使用GO语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用程序进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。
目标
开发人员和运维人员职责逻辑分离
多环境保持一致性,消除了环境差异
功能:“Build,Ship and Run Any App,Anywhere”
架构
组成
宿主机:安装Docker的那台实际的物理机器
docker client 【客户端】:用于连接服务端,提交命令给服务端
#拉取镜像
docker pull ……
#启动容器
docker run ……
#进入容器
docker exec ……
#查看容器
docker ps ……
docker daemon【服务端】:用于接收客户端请求,实现所有容器管理操作
docker image【镜像】:用于安装APP的软件库,简单点理解为软件的安装包
docker container 【容器】:用于独立运行、隔离每个APP的单元,相当于每个独立的Linux系统
小结
07:Docker的网络
目标:了解Docker的网络管理设计
路径
实施
问题
模式
host模式:每个虚拟系统与主机共享网络,IP一致,用不同端口区分不同虚拟系统
container模式:第一个容器构建一个独立的虚拟网络,其他的容器与第一个容器共享网络
- **none模式**:允许自定义每个容器的网络配置及网卡信息,每个容器独立一个网络
- **bridge模式**:构建虚拟网络桥,所有容器都可以基于网络桥来构建自己的网络配置
选型
管理
了解即可,不用操作
创建
docker network create --subnet=172.33.0.0/24 docker-bd0
查看模式
docker network ls
删除
docker network rm ……
小结
08:Docker的使用
目标:了解docker的基本使用
路径
实施
docker管理
默认开机自启
了解即可,不用操作
启动服务
systemctl start docker
查看状态
systemctl status docker
关闭服务
systemctl stop docker
image管理
了解即可,不用操作
添加镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
列举镜像
docker images
移除镜像
docker rmi ……
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工具的基本功能和应用场景
路径
实施
数据库分类
Oracle的介绍
概念:甲骨文公司的一款关系数据库管理系统
分类:RDBMS,属于大型RDBMS数据库
功能:实现大规模关系型数据存储
特点
综合排名
应用
趋势
小结
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:启动:启动导入的虚拟机,选择我已移动该虚拟机
step3:登陆:登陆到虚拟机内部,或者使用远程工具连接
小结
12:项目环境配置
目标:根据需求实现项目环境配置
实施
注意:所有软件Docker、Hadoop、Hive、Spark、Sqoop都已经装好,不需要额外安装配置,启动即可
配置网络:如果你的VM Nat网络不是88网段,请按照以下修改
修改Linux虚拟机的ens33网卡,网卡和网关,修改为自己的网段
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡
systemctl restart network
查看是否修改成功
ifconfig
配置映射
修改Linux映射,修改为自己的网段
vim /etc/hosts
配置Windows上的映射,方便使用主机名访问【把以前的有冲突的注释掉】
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

小结
13:项目环境测试: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
- 远程连接:DG
- step1:安装DG
- step2:创建连接
- SID:helowin
- 用户名:ciss
- 密码:123456

step3:配置驱动包
step4:配置JDK
step5:测试
关闭
docker stop oracle
小结
14:项目环境测试:MySQL
目标:实现项目MySQL环境的测试
实施
大数据平台中自己管理的MySQL:两台机器
注意:MySQL没有使用Docker容器部署,直接部署在当前node1宿主机器上
启动/关闭:默认开启自启动
连接:使用命令行客户端、Navicat、DG都可以
查看
小结
15:项目环境测试:Hadoop
目标:实现项目Hadoop环境的测试
实施
启动
docker start hadoop
进入
docker exec -it hadoop bash
查看进程
jps
启动进程
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
访问页面
node1:50070
node1:8088
node1:19888
退出
exit
关闭
docker stop hadoop
小结
16:项目环境测试:Hive
目标:实现项目Hive环境的测试
实施
启动Hive容器
docker start hive
进入Hive容器
docker exec -it hive bash
source /etc/profile
连接
beeline
!connect jdbc:hive2://hive.bigdata.cn:10000
账号为root,密码为123456
SQL测试
select count(1);
关闭Hive容器
docker stop 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
测试
beeline -u jdbc:hive2://spark.bigdata.cn:10001 -n root -p 123456
select count(1);
关闭Spark容器
docker stop spark
小结
18:项目环境测试: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
小结
要求
-
Python面向对象
- 类和对象
- 方法
-
Hive中建表语法
create [external] table tbname( 字段 类型 comment, ) comment partitioned by clustered by col into N buckets row format stored as textfile location
-
提前预习:EntranceApp.py