后端部署文档.md 4.5 KB
Newer Older
D
dailidong 已提交
1
# 后端部署文档
D
dailidong 已提交
2 3 4 5


## 基础软件安装

D
dailidong 已提交
6 7 8 9 10 11 12 13 14 15 16
 * [Mysql](https://blog.csdn.net/u011886447/article/details/79796802) (5.5+) :  必装
 * [JDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html) (1.8+) :  必装
 * [ZooKeeper](https://www.jianshu.com/p/de90172ea680)(3.4.6) :必装 
 * [Hadoop](https://blog.csdn.net/Evankaka/article/details/51612437)(2.7.3) :选装, 如果需要使用到资源上传功能,MapReduce任务提交则需要配置Hadoop(上传的资源文件目前保存在Hdfs上)
 * [Hive](https://staroon.pro/2017/12/09/HiveInstall/)(1.2.1) :  选装,hive任务提交需要安装
 * Spark(1.x,2.x) : 选装,Spark任务提交需要安装
 * PostgreSQL(8.2.15+) : 选装,PostgreSQL PostgreSQL存储过程需要安装
 
```
 注意:EasyScheduler本身不依赖Hadoop、Hive、Spark、PostgreSQL,仅是会调用他们的Client,用于对应任务的运行。
```
D
dailidong 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

## 项目编译

* 执行编译命令:

```
 mvn -U clean package assembly:assembly -Dmaven.test.skip=true
```

* 查看目录

正常编译完后,会在当前目录生成 target/escheduler-{version}/

```
    bin
    conf
    lib
    script
    sql
    install.sh
```

- 说明

```
bin : 基础服务启动脚本
conf : 项目配置文件
lib : 项目依赖jar包,包括各个模块jar和第三方jar
script : 集群启动、停止和服务监控启停脚本
sql : 项目依赖sql文件
install.sh : 一键部署脚本
```

  

## 数据库初始化

D
dailidong 已提交
54
* 创建database和账号
D
dailidong 已提交
55 56 57 58 59 60 61 62 63

``` 
mysql -h {host} -u {user} -p{password}
mysql> CREATE DATABASE escheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON escheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON escheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> flush privileges;
```

D
dailidong 已提交
64
* 创建表和导入基础数据
D
dailidong 已提交
65 66 67 68 69 70 71 72 73 74 75 76

```
说明:在 target/escheduler-{version}/sql/escheduler.sql和quartz.sql

mysql -h {host} -u {user} -p{password} -D {db} < escheduler.sql

mysql -h {host} -u {user} -p{password} -D {db} < quartz.sql
```


## 创建部署用户

77
- 在所有需要部署调度的机器上创建部署用户,因为worker是以 sudo -u {linux-user} 方式来执行作业,所以部署用户需要有 sudo 权限,而且是免密的。
D
dailidong 已提交
78 79 80 81 82 83 84 85 86 87 88

```部署账号
vi /etc/sudoers

# 部署用户是 escheduler 账号
escheduler  ALL=(ALL)       NOPASSWD: NOPASSWD: ALL

# 并且需要注释掉 Default requiretty 一行
#Default requiretty
```

89 90 91 92
## ssh免密配置
 在部署机和其他安装机器上配置ssh免密登录,如果要在部署机上安装调度,需要配置本机免密登录自己
 
- [将 **主机器** 和各个其它机器SSH打通](http://geek.analysys.cn/topic/113)
D
dailidong 已提交
93

94
## 产品部署
D
dailidong 已提交
95

96
### 1. 修改环境变量文件
D
dailidong 已提交
97

98
- 根据业务需求,修改conf/env/目录下的**escheduler_env.py****.escheduler_env.sh**两个文件中的环境变量
D
dailidong 已提交
99

100
### 2. 修改部署参数
D
dailidong 已提交
101

102
​- 修改 install.sh 中变量的值,替换成自身业务所需的值
D
dailidong 已提交
103

104
### 3. 一键部署
D
dailidong 已提交
105 106

- 安装 pip install kazoo
107

Q
qiaozhanwei 已提交
108 109 110 111 112 113 114 115 116 117 118 119
- 安装目录如下:

```
    bin
    conf
    install.sh
    lib
    monitor_server.py
    script
    sql
    
```
D
dailidong 已提交
120

B
baoliang 已提交
121
- 使用部署用户 sh install.sh 一键部署
B
baoliang 已提交
122

123 124 125 126 127 128 129 130 131
- jps查看服务是否启动

```aidl
    MasterServer         ----- master服务
    WorkerServer         ----- worker服务
    LoggerServer         ----- logger服务
    ApiApplicationServer ----- api服务
    AlertServer          ----- alert服务
```
B
baoliang 已提交
132
    
133
    
134
## 启停服务
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

* 启停Master

```启动master
sh ./bin/escheduler-daemon.sh start master-server
sh ./bin/escheduler-daemon.sh stop master-server
```

* 启停Worker

```
sh ./bin/escheduler-daemon.sh start worker-server
sh ./bin/escheduler-daemon.sh stop worker-server
```

* 启停Api

```
sh ./bin/escheduler-daemon.sh start api-server
sh ./bin/escheduler-daemon.sh stop api-server
```
* 启停Logger

```
sh ./bin/escheduler-daemon.sh start logger-server
sh ./bin/escheduler-daemon.sh stop logger-server
```
* 启停Alert

```
sh ./bin/escheduler-daemon.sh start alert-server
sh ./bin/escheduler-daemon.sh stop alert-server
```
    
D
dailidong 已提交
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
## 服务监控

monitor_server.py 脚本是监听,master和worker服务挂掉重启的脚本

注意:在全部服务都启动之后启动

nohup python -u monitor_server.py > nohup.out 2>&1 &

## 日志查看
日志统一存放于指定文件夹内

```日志路径
 logs/
    ├── escheduler-alert-server.log
    ├── escheduler-master-server.log
    |—— escheduler-worker-server.log
    |—— escheduler-api-server.log
    |—— escheduler-logger-server.log
```