分布式调度框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

4.6 KiB

后端部署文档

基础软件安装

  • Mysql (5.5+) : 必装
  • JDK (1.8+) : 必装
  • ZooKeeper(3.4.6) :必装
  • Hadoop(2.6+) :选装, 如果需要使用到资源上传功能,MapReduce任务提交则需要配置Hadoop(上传的资源文件目前保存在Hdfs上)
  • Hive(1.2.1) : 选装,hive任务提交需要安装
  • Spark(1.x,2.x) : 选装,Spark任务提交需要安装
  • PostgreSQL(8.2.15+) : 选装,PostgreSQL PostgreSQL存储过程需要安装
 注意:EasyScheduler本身不依赖Hadoop、Hive、Spark、PostgreSQL,仅是会调用他们的Client,用于对应任务的运行。

项目编译

  • 执行编译命令:
 mvn -U clean package assembly:assembly -Dmaven.test.skip=true
  • 查看目录

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

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

数据库初始化

  • 创建database和账号
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;
  • 创建表和导入基础数据
说明:在 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

创建部署用户

  • 在所有需要部署调度的机器上创建部署用户,因为worker服务是以 sudo -u {linux-user} 方式来执行作业,所以部署用户需要有 sudo 权限,而且是免密的。
vi /etc/sudoers

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

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

ssh免密配置

在部署机器和其他安装机器上配置ssh免密登录,如果要在部署机上安装调度,需要配置本机免密登录自己

部署

1. 修改安装目录权限

  • 安装目录如下:
    bin
    conf
    install.sh
    lib
    script
    sql
    
  • 修改权限(deployUser修改为对应部署用户)

    sudo chown -R deployUser:deployUser *

2. 修改环境变量文件

  • 根据业务需求,修改conf/env/目录下的escheduler_env.py.escheduler_env.sh两个文件中的环境变量

3. 修改部署参数

  • 修改 install.sh中的参数,替换成自身业务所需的值

  • 如果使用hdfs相关功能,需要拷贝hdfs-site.xmlcore-site.xml到conf目录下

4. 一键部署

  • 安装zookeeper工具

    pip install kazoo

  • 切换到部署用户,一键部署

    sh install.sh

  • jps查看服务是否启动

    MasterServer         ----- master服务
    WorkerServer         ----- worker服务
    LoggerServer         ----- logger服务
    ApiApplicationServer ----- api服务
    AlertServer          ----- alert服务

日志查看

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

 logs/
    ├── escheduler-alert-server.log
    ├── escheduler-master-server.log
    |—— escheduler-worker-server.log
    |—— escheduler-api-server.log
    |—— escheduler-logger-server.log

启停服务

  • 一键停止集群所有服务

    sh ./script/stop_all.sh

  • 一键开启集群所有服务

    sh ./script/start_all.sh

  • 启停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