x`# 一、服务器26
服务器IP：10.10.15.26
部署内容：主程序项目和组件
> 项目目录结构说明：  
  1、 项目日志：/data/webapp/logs  
  2、 项目上传资源文件：/data/webapp/uploads  
  3、 项目docker环境：/data/docker/webapp  
  4、 前端项目目录：/data/webapp/www  
  5、 API数据门户项目目录：/data/webapp/datamap
  6、 ETL计算大数据目录：/data/webapp/bigdata
  7、 部署文件临时存放位置：/data/software 
  
## 1、安装docker 
##### 1.1 上传docker-24.0.7.tgz到服务器[如：/data/software]，解压缩并迁移命令

```
# cp /data/software

# tar -zxvf docker-24.0.7.tgz

# cp -pf docker/* /usr/bin

```

##### 1.2 将docker注册为系统服务

``` 
# vim /usr/lib/systemd/system/docker.service 

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
[Service]
Type=notify
EnvironmentFile=-/run/flannel/docker
WorkingDirectory=/usr/local/bin
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock --selinux-enabled=false
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
```

##### 1.3 设置docker镜像存储位置、国内镜像加速、私服地址信任

``` 
# mkdir -p /data/docker/lib && mkdir /etc/docker

# vim /etc/docker/daemon.json
{
"registry-mirrors": [
	"https://hub-mirror.c.163.com/", 
	"https://mirror.ccs.tencentyun.com", 
	"https://mirror.baidubce.com"
 ],
 "insecure-registries": [
   "docker.platomix.net:10000"
 ],
 "data-root": "/data/docker/lib"
}
```

##### 1.4 启动docker

```
# systemctl daemon-reload

# systemctl start docker

# systemctl enable docker  // 开机启动

# docker info  //查看docker是否启动成功
```

##### 1.5 上传docker-compose上传到/data/software
``` 
# cd /data/software

# cp docker-compose /usr/local/bin 

# chmod a+x /usr/local/bin/docker-compose
	
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# docker-compose --version  //查看是否成功
```

## 2.部署项目

##### 2.1、准备docker-compose编排配置文件
上传webapp.zip到/data/software，解压缩

```
# mkdir /data/docker/webapp

# unzip webapp.zip -d /data/docker/webapp

```

##### 2.2、准备前端文件
上传api-dist.zip和etl-dist.zip 到/data/software，解压缩

```
# mkdir -p /data/webapp/{datamap,www,uploads}

# unzip api-dist.zip -d /data/webapp/datamap

# unzip etl-dist.zip -d /data/webapp/www
```

##### 2.4、准备大数据计算框架seatunnel依赖组件库
 上传apache-seatunnel-2.3.2-bin.tar.gz 到 /data/software，解压缩
 
 ```
  # mkdir -p /data/webapp/bigdata
  
  # tar -zxf apache-seatunnel-2.3.2-bin.tar.gz -C /data/webapp/bigdata
 ```

##### 2.5、后端docker项目和组件镜像安装
上传所有项目和组件的镜像tar文件到/data/software，然后执行下面命令安装镜像

```
#docker load < redis-5.0.tar
#docker load < nginx-1.23.tar
#docker load < mysql-8.tar
#docker load < rocketmq-4.4.0.tar

#docker load < gmetry-etl-[version].tar
#docker load < gmetry-system-[version].tar
#docker load < gmetry-xxljob-[version].tar
#docker load < api-gateway-[version].tar
#docker load < api-cgi-[version].tar
#docker load < api-client-[version].tar
```

##### 2.6、启动后端docker项目
项目启动必须按照顺序【每一个步骤启动完成后，使任务完全启动成功后再执行下一个步骤】：

```
1、创建docker网桥
#docker network create net_webapp
#docker network ls  #查看网桥

2、启动mysql/redis/mq
# cd /data/docker/webapp
# docker-compose up -d mysql redis rocketmq rocketmqBroker

3、启动项目模块 -> 【注意：启动该项目之前，请先修改3.2】
# cd /data/docker/webapp
# docker-compose up -d gmetry-xxljob gmetry-etl gmetry-system api-gateway api-cgi api-client

4、最后启动nginx
# cd /data/docker/webapp
# docker-compose up -d nginx
```

## 3.项目特殊说明

##### 3.1、修改了api-cgi的nginx端口，需要同时修改api-gateway项目的配置
 
 ```
 # cd /data/docker/webapp
 # vim docker-compose.yml
 
 找到文件中"--api.domain=",修改对应端口。
 
 //修改完成后，需要重启api-gateway容器
 # docker-compose up -d api-gateway
 ```

 
## 4.验证是否部署成功
 
 浏览器打开：
 
 ```
 #ETL项目
 http://10.10.15.26:7070
 
 #数据门户项目
 http://10.10.15.26:8080
 ```
 
如果正常打开页面，并且验证码也显示，使用账号密码登录成功即为正常。


# 二、服务器27
服务器IP：10.10.15.26
部署内容：大数据计算引擎和相关组件

> 项目目录结构说明：
  1、flink目录：/data/bigdata/flink-1.15.4 
  2、datax执行目录：/data/bigdata/datax
  3、datax运行时目录：/data/bigdata/datax_data
  4、flink计算引擎上传文件目录：/data/bigdata/uploads
  5、部署文件临时存放位置：/data/software
  

## 1、安装jdk1.8
 上传jdk-8u251-linux-x64.tar.gz 到 /data/software，解压缩
 
```
 # tar -zxf jdk-8u251-linux-x64.tar.gz -C /usr/local
 
 //配置环境变量[最后添加2行]
 # vim /etc/profile
 export JAVA_HOME=/usr/local/jdk1.8.0_251
 export PATH=$PATH:$JAVA_HOME/bin
 
 # source /etc/profile
 
```

## 2、安装启动flink-1.15.4

上传flink-1.15.4-bin-scala_2.12.tgz 到 /data/software，解压缩

```
# unzip flink-1.15.4-bin-scala_2.12.tgz -d /data/bigdata

//启动flink
# cd /data/bigdata/flink-1.15.4  && sh bin/start-cluster.sh

//停止flink
# cd /data/bigdata/flink-1.15.4  && sh bin/stop-cluster.sh

```


## 3、安装datax 

 上传datax3_20230922.tar.gz 到 /data/software，解压缩

```
 
 # tar -zxf datax3_20230922.tar.gz -C /data/bigdata
 
 //注意：需要手动添加datax.py的可执行权限
 # chmod a+x /data/bigdata/datax/bin/datax.py

```