You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by jo...@apache.org on 2020/03/02 06:47:53 UTC

[incubator-dolphinscheduler-website] branch master updated: 1.2.1 version menu modification

This is an automated email from the ASF dual-hosted git repository.

journey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler-website.git


The following commit(s) were added to refs/heads/master by this push:
     new f7ebc2f  1.2.1 version menu modification
     new 7f47e64  Merge pull request #99 from break60/master
f7ebc2f is described below

commit f7ebc2f186aecc0cc9bca05529dcc757b5b60d3f
Author: break60 <79...@qq.com>
AuthorDate: Mon Mar 2 14:37:39 2020 +0800

    1.2.1 version menu modification
---
 docs/en-us/1.2.1/user_doc/backend-deployment.md   | 260 ++++++++++++++++++++++
 docs/en-us/1.2.1/user_doc/frontend-deployment.md  | 128 +++++++++++
 docs/en-us/1.2.1/user_doc/hardware-environment.md |  48 ++++
 docs/zh-cn/1.2.1/user_doc/backend-deployment.md   | 252 +++++++++++++++++++++
 docs/zh-cn/1.2.1/user_doc/frontend-deployment.md  | 116 ++++++++++
 site_config/docs1-2-1.js                          |  64 ++++++
 src/pages/documentation/index.jsx                 |   9 +-
 7 files changed, 876 insertions(+), 1 deletion(-)

diff --git a/docs/en-us/1.2.1/user_doc/backend-deployment.md b/docs/en-us/1.2.1/user_doc/backend-deployment.md
new file mode 100755
index 0000000..d29cd4c
--- /dev/null
+++ b/docs/en-us/1.2.1/user_doc/backend-deployment.md
@@ -0,0 +1,260 @@
+# Backend Deployment Document
+
+There are two deployment modes for the backend: 
+
+- automatic deployment  
+- source code compile and then deployment
+
+## Preparations
+
+Download the latest version of the installation package, download address:  [download](https://dolphinscheduler.apache.org/en-us/docs/release/download.html),
+download apache-dolphinscheduler-incubating-x.x.x-dolphinscheduler-backend-bin.tar.gz
+
+
+
+#### Preparations 1: Installation of basic software (self-installation of required items)
+
+ * PostgreSQL (8.2.15+) or Mysql (5.5+) :  You can choose either PostgreSQL or Mysql.
+ * JDK (1.8+) :  Mandatory
+ * ZooKeeper(3.4.6+) :Mandatory
+ * Hadoop (2.6+) or MinIo :Optionally, if you need to use the resource upload function, You can choose either Hadoop or MinIo.
+ * Hive (1.2.1) :   Optional, hive task submission needs to be installed
+ * Spark(1.x,2.x) :  Optional, Spark task submission needs to be installed
+
+```
+ Note: DolphinScheduler itself does not rely on Hadoop, Hive, Spark, PostgreSQL, but only calls their Client to run the corresponding tasks.
+```
+
+#### Preparations 2: Create deployment users
+
+- Deployment users are created on all machines that require deployment scheduling, because the worker service executes jobs in `sudo-u {linux-user}`, so deployment users need sudo privileges and are confidential.
+
+```
+vi /etc/sudoers
+
+# For example, the deployment user is an dolphinscheduler account
+dolphinscheduler  ALL=(ALL)       NOPASSWD: NOPASSWD: ALL
+
+# And you need to comment out the Default requiretty line
+#Default requiretty
+```
+
+#### Preparations 3: SSH Secret-Free Configuration
+Configure SSH secret-free login on deployment machines and other installation machines. If you want to install dolphinscheduler on deployment machines, you need to configure native password-free login itself.
+
+- Connect the host and other machines SSH
+
+#### Preparations 4: database initialization
+
+* Create databases and accounts
+
+    Execute the following command to create database and account
+    
+    ```
+    CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
+    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
+    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
+    flush privileges;
+    ```
+
+* creates tables and imports basic data
+    Modify the following attributes in ./conf/application-dao.properties
+
+    ```
+        spring.datasource.url
+        spring.datasource.username
+        spring.datasource.password
+    ```
+    
+    Execute scripts for creating tables and importing basic data
+    
+    ```
+    sh ./script/create-dolphinscheduler.sh
+    ```
+
+#### Preparations 5: Modify the deployment directory permissions and operation parameters
+
+     instruction of dolphinscheduler-backend directory 
+
+```directory
+bin : Basic service startup script
+DISCLAIMER-WIP : DISCLAIMER-WIP
+conf : Project Profile
+lib : The project relies on jar packages, including individual module jars and third-party jars
+LICENSE : LICENSE
+licenses : licenses
+NOTICE : NOTICE
+script :  Cluster Start, Stop and Service Monitor Start and Stop scripts
+sql : The project relies on SQL files
+install.sh :  One-click deployment script
+```
+
+- Modify permissions (please modify the 'deployUser' to the corresponding deployment user) so that the deployment user has operational privileges on the dolphinscheduler-backend directory
+
+    `sudo chown -R deployUser:deployUser dolphinscheduler-backend`
+
+- Modify the `.dolphinscheduler_env.sh` environment variable in the conf/env/directory
+
+- Modify deployment parameters (depending on your server and business situation):
+
+ - Modify the parameters in `install.sh` to replace the values required by your business
+   - MonitorServerState switch variable, added in version 1.0.3, controls whether to start the self-start script (monitor master, worker status, if off-line will start automatically). The default value of "false" means that the self-start script is not started, and if it needs to start, it is changed to "true".
+   - 'hdfsStartupSate' switch variable controls whether to start hdfs
+      The default value of "false" means not to start hdfs
+      Change the variable to 'true' if you want to use hdfs, you also need to create the hdfs root path by yourself, that 'hdfsPath' in install.sh.
+
+ - If you use hdfs-related functions, you need to copy**hdfs-site.xml** and **core-site.xml** to the conf directory
+
+
+## Deployment
+Either of the following two methods can be deployed,binary file deployment is recommended, and experienced partners can use source deployment as well.
+
+### Binary file Deployment
+
+- Install zookeeper tools
+
+   `pip install kazoo`
+
+- Switch to deployment user, one-click deployment
+
+    `sh install.sh` 
+
+- Use the `jps` command to check if the services are started (`jps` comes from `Java JDK`)
+
+```aidl
+    MasterServer         ----- Master Service
+    WorkerServer         ----- Worker Service
+    LoggerServer         ----- Logger Service
+    ApiApplicationServer ----- API Service
+    AlertServer          ----- Alert Service
+```
+
+If all services are normal, the automatic deployment is successful
+
+
+After successful deployment, the log can be viewed and stored in a specified folder.
+
+```logPath
+ logs/
+    ├── dolphinscheduler-alert-server.log
+    ├── dolphinscheduler-master-server.log
+    |—— dolphinscheduler-worker-server.log
+    |—— dolphinscheduler-api-server.log
+    |—— dolphinscheduler-logger-server.log
+```
+
+### Compile source code to deploy
+
+After downloading the release version of the source package, unzip it into the root directory
+
+* Build a tar package
+
+    Execute the compilation command:
+
+    ```
+     mvn -U clean package -Prelease -Dmaven.test.skip=true
+    ```
+
+    View directory
+
+    After normal compilation, `apache-dolphinscheduler-incubating-${latest.release.version}-dolphinscheduler-backend-bin.tar.gz`
+is generated in the `./dolphinscheduler-dist/dolphinscheduler-backend/target` directory
+
+* OR build a rpm package 
+
+    The rpm package can be installed on the Linux platform using the rpm command or yum. The rpm package can be used to help Dolphinscheduler better integrate with other management tools, such as ambari, cloudera manager.
+
+    Execute the compilation command:
+
+    ```
+     mvn -U clean package -Prpmbuild -Dmaven.test.skip=true
+    ```
+
+    View directory
+
+    After normal compilation, `apache-dolphinscheduler-incubating-${latest.release.version}-1.noarch.rpm`
+    is generated in the `./dolphinscheduler-dist/target/rpm/apache-dolphinscheduler-incubating/RPMS/noarch/` directory
+
+
+* Decompress the compiled tar.gz package or use the rpm command to install (the rpm installation method will install dolphinscheduler in the /opt/soft directory) . The dolphinscheduler directory structure is like this:
+
+     ```
+      ../
+         ├── bin
+         ├── conf
+         |── DISCLAIMER
+         |—— install.sh
+         |—— lib
+         |—— LICENSE
+         |—— licenses
+         |—— NOTICE
+         |—— script
+         |—— sql
+     ```
+
+
+- Install zookeeper tools
+
+   `pip install kazoo`
+
+- Switch to deployment user, one-click deployment
+
+    `sh install.sh`
+
+### Start-and-stop services commonly used in systems (for service purposes, please refer to System Architecture Design for details)
+
+* stop all services in the cluster
+  
+   ` sh ./bin/stop-all.sh`
+   
+* start all services in the cluster
+  
+   ` sh ./bin/start-all.sh`
+
+* start and stop one master server
+
+```master
+sh ./bin/dolphinscheduler-daemon.sh start master-server
+sh ./bin/dolphinscheduler-daemon.sh stop master-server
+```
+
+* start and stop one worker server
+
+```worker
+sh ./bin/dolphinscheduler-daemon.sh start worker-server
+sh ./bin/dolphinscheduler-daemon.sh stop worker-server
+```
+
+* start and stop api server
+
+```Api
+sh ./bin/dolphinscheduler-daemon.sh start api-server
+sh ./bin/dolphinscheduler-daemon.sh stop api-server
+```
+* start and stop logger server
+
+```Logger
+sh ./bin/dolphinscheduler-daemon.sh start logger-server
+sh ./bin/dolphinscheduler-daemon.sh stop logger-server
+```
+* start and stop alert server
+
+```Alert
+sh ./bin/dolphinscheduler-daemon.sh start alert-server
+sh ./bin/dolphinscheduler-daemon.sh stop alert-server
+```
+
+## Database Upgrade
+Modify the following properties in ./conf/application-dao.properties
+
+    ```
+        spring.datasource.url
+        spring.datasource.username
+        spring.datasource.password
+    ```
+The database can be upgraded automatically by executing the following command:
+```upgrade
+sh ./script/upgrade-dolphinscheduler.sh
+```
+
+
diff --git a/docs/en-us/1.2.1/user_doc/frontend-deployment.md b/docs/en-us/1.2.1/user_doc/frontend-deployment.md
new file mode 100755
index 0000000..eea3338
--- /dev/null
+++ b/docs/en-us/1.2.1/user_doc/frontend-deployment.md
@@ -0,0 +1,128 @@
+# frontend-deployment
+
+The front-end has three deployment modes: automated deployment, manual deployment and compiled source deployment.
+
+
+
+## Preparations
+
+#### Download the installation package
+
+Please download the latest version of the installation package, download address: [download](https://dolphinscheduler.apache.org/en-us/docs/release/download.html)
+
+After downloading apache-dolphinscheduler-incubating-x.x.x-dolphinscheduler-front-bin.tar.gz,
+decompress`tar -zxvf apache-dolphinscheduler-incubating-x.x.x-dolphinscheduler-front-bin.tar.gz ./`and enter the`dolphinscheduler-ui`directory
+
+
+
+
+## Deployment
+
+Automated deployment is recommended for either of the following two ways
+
+### Automated Deployment
+
+>Front-end automatic deployment based on Linux system `yum` operation, before deployment, please install and update`yum`
+
+under this directory, execute`./install-dolphinscheduler-ui.sh` 
+
+
+### Manual Deployment
+You can choose one of the following two deployment methods, or you can choose other deployment methods according to your production environment.
+
+#### nginx deployment
+Option to install epel source `yum install epel-release -y`
+
+Install Nginx by yourself, download it from the official website: http://nginx.org/en/download.html or `yum install nginx -y`
+
+
+> ####  Nginx configuration file address
+
+```
+/etc/nginx/conf.d/default.conf
+```
+
+> ####  Configuration information (self-modifying)
+
+```
+server {
+    listen       8888;# access port
+    server_name  localhost;
+    #charset koi8-r;
+    #access_log  /var/log/nginx/host.access.log  main;
+    location / {
+        root   /xx/dist; # the dist directory address decompressed by the front end above (self-modifying)
+        index  index.html index.html;
+    }
+    location /dolphinscheduler {
+        proxy_pass http://192.168.xx.xx:12345; # interface address (self-modifying)
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header x_real_ipP $remote_addr;
+        proxy_set_header remote_addr $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_http_version 1.1;
+        proxy_connect_timeout 4s;
+        proxy_read_timeout 30s;
+        proxy_send_timeout 12s;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection "upgrade";
+    }
+    #error_page  404              /404.html;
+    # redirect server error pages to the static page /50x.html
+    #
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   /usr/share/nginx/html;
+    }
+}
+```
+
+> ####  Restart the Nginx service
+
+```
+systemctl restart nginx
+```
+
+#### nginx command
+
+- enable `systemctl enable nginx`
+
+- restart `systemctl restart nginx`
+
+- status `systemctl status nginx`
+
+#### jetty deployment
+Enter the source package `dolphinscheduler-ui` directory and execute
+
+```
+npm install
+```
+
+> #####  ! ! ! Special attention here. If the project reports a "node-sass error" error while pulling the dependency package, execute the following command again after execution.
+```
+npm install node-sass --unsafe-perm //Install node-sass dependency separately
+```
+
+```
+npm run build:release
+```
+
+Create the ui directory under the backend binary package directory
+
+Copy all files in the dolphinscheduler-ui/dist directory to the backend binary package ui directory
+
+Visit the following url, interface address (modify it yourself)
+http://192.168.xx.xx:12345/dolphinscheduler
+
+## FAQ
+#### Upload file size limit
+
+Edit the configuration file `vi /etc/nginx/nginx.conf`
+
+```
+# change upload size
+client_max_body_size 1024m
+```
+
+
diff --git a/docs/en-us/1.2.1/user_doc/hardware-environment.md b/docs/en-us/1.2.1/user_doc/hardware-environment.md
new file mode 100755
index 0000000..705c7d8
--- /dev/null
+++ b/docs/en-us/1.2.1/user_doc/hardware-environment.md
@@ -0,0 +1,48 @@
+# Hareware Environment
+
+DolphinScheduler, as an open-source distributed workflow task scheduling system, can be well deployed and run in Intel architecture server environments and mainstream virtualization environments, and supports mainstream Linux operating system environments.
+
+## 1. Linux operating system version requirements
+
+| OS       | Version         |
+| :----------------------- | :----------: |
+| Red Hat Enterprise Linux | 7.0 and above   |
+| CentOS                   | 7.0 and above   |
+| Oracle Enterprise Linux  | 7.0 and above   |
+| Ubuntu LTS               | 16.04 and above |
+
+> **Attention:**
+>The above Linux operating systems can run on physical servers and mainstream virtualization environments such as VMware, KVM, and XEN.
+
+## 2. Recommended server configuration
+DolphinScheduler supports 64-bit hardware platforms with Intel x86-64 architecture. The following recommendation is made for server hardware configuration in a production environment:
+### Production Environment
+
+| **CPU** | **MEM** | **HD** | **NIC** | **Num** |
+| --- | --- | --- | --- | --- |
+| 4 core+ | 8 GB+ | SAS | GbE | 1+ |
+
+> **Attention:**
+> - The above-recommended configuration is the minimum configuration for deploying DolphinScheduler. The higher configuration is strongly recommended for production environments.
+> - The hard disk size configuration is recommended by more than 50GB. The system disk and data disk are separated.
+
+
+## 3. Network requirements
+
+DolphinScheduler provides the following network port configurations for normal operation:
+
+| Server | Port | Desc |
+|  --- | --- | --- |
+| MasterServer |  5566  | Not the communication port. Require the native ports do not conflict |
+| WorkerServer | 7788  | Not the communication port. Require the native ports do not conflict |
+| ApiApplicationServer |  12345 | Backend communication port |
+| nginx | 8888 | The port for DolphinScheduler UI |
+
+> **Attention:**
+> - MasterServer and WorkerServer do not need to enable communication between the networks. As long as the local ports do not conflict.
+> - Administrators can adjust relevant ports on the network side and host-side according to the deployment plan of DolphinScheduler components in the actual environment.
+
+## 4. Browser requirements
+
+DolphinScheduler recommends Chrome and the latest browsers which using Chrome Kernel to access the front-end visual operator page.
+
diff --git a/docs/zh-cn/1.2.1/user_doc/backend-deployment.md b/docs/zh-cn/1.2.1/user_doc/backend-deployment.md
new file mode 100755
index 0000000..966a5e6
--- /dev/null
+++ b/docs/zh-cn/1.2.1/user_doc/backend-deployment.md
@@ -0,0 +1,252 @@
+# 后端部署文档(不久将被删除)
+
+后端有2种部署方式,分别为自动化部署和编译源码部署
+
+## 1、准备工作
+
+请下载最新版本的安装包,下载地址: [下载](https://dolphinscheduler.apache.org/zh-cn/docs/release/download.html)
+
+#### 准备一: 基础软件安装(必装项请自行安装)
+
+ * PostgreSQL (8.2.15+) or Mysql (5.5+)  :  两者任选其一即可
+ * [JDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html) (1.8+) :  必装
+ * ZooKeeper (3.4.6+) :必装 
+ * Hadoop (2.6+) or MinIo :选装, 如果需要使用到资源上传功能,可以选择Hadoop or MinIo
+ * [Hive](https://staroon.pro/2017/12/09/HiveInstall/)(1.2.1) :  选装,hive任务提交需要安装
+ * Spark (1.x,2.x) : 选装,Spark任务提交需要安装
+ 
+```
+ 注意:DolphinScheduler本身不依赖Hadoop、Hive、Spark、PostgreSQL,仅是会调用他们的Client,用于对应任务的运行。
+```
+
+#### 准备二: 创建部署用户
+
+- 在所有需要部署调度的机器上创建部署用户,因为worker服务是以 sudo -u {linux-user} 方式来执行作业,所以部署用户需要有 sudo 权限,而且是免密的。
+
+```部署账号
+vi /etc/sudoers
+
+# 例如部署用户是dolphinscheduler账号
+dolphinscheduler  ALL=(ALL)       NOPASSWD: NOPASSWD: ALL
+
+# 并且需要注释掉 Default requiretty 一行
+#Default requiretty
+```
+
+#### 准备三: ssh免密配置
+ 在部署机器和其他安装机器上配置ssh免密登录,如果要在部署机上安装调度,需要配置本机免密登录自己
+ 
+- 将 **主机器** 和各个其它机器SSH免密打通
+
+
+#### 准备四:数据库初始化
+
+* 创建database和账号
+    
+    执行以下命令创建database和账号
+    
+    ```sql 
+    CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
+    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
+    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
+    flush privileges;
+    ```
+
+* 创建表和导入基础数据
+    修改./conf/application-dao.properties中的下列属性
+
+    ```
+        spring.datasource.url
+        spring.datasource.username
+        spring.datasource.password
+    ```
+    执行创建表和导入基础数据脚本
+    ```
+    sh ./script/create-dolphinscheduler.sh
+    ```
+
+#### 准备五: 修改部署目录权限及运行参数
+
+    dophinscheduler-backend目录介绍
+
+```
+bin : 基础服务启动脚本
+conf : 项目配置文件
+DISCLAIMER : DISCLAIMER文件
+lib : 项目依赖jar包,包括各个模块jar和第三方jar
+LICENSE : LICENSE文件
+licenses : 运行时license
+NOTICE : NOTICE文件
+script : 集群启动、停止和服务监控启停脚本
+sql : 项目依赖sql文件
+install.sh : 一键部署脚本
+```
+
+- 修改权限(请将'deployUser'字段修改为对应部署用户),使得部署用户对dolphinscheduler-backend目录有操作权限
+    
+    `sudo chown -R deployUser:deployUser dolphinscheduler-backend`
+
+- 修改conf/env/目录下的 `.dolphinscheduler_env.sh` 环境变量
+
+- 修改部署参数(根据自己服务器及业务情况):
+
+ - 修改 `install.sh`中的各参数,替换成自身业务所需的值
+   - monitorServerState 开关变量,在1.0.3版本中增加,控制是否启动自启动脚本(监控master,worker状态,如果掉线会自动启动)
+   默认值为"false"表示不启动自启动脚本,如果需要启动改为"true"
+
+   - hdfsStartupSate 开关变量,控制是否启动hdfs
+      默认值为"false"表示不启动hdfs
+      如果需要启动改为"true",启动hdfs需要自行创建hdfs根路径,也就是install.sh中的 hdfsPath
+
+ - 如果使用hdfs相关功能,需要拷贝**hdfs-site.xml**和**core-site.xml**到conf目录下
+
+
+## 2、部署
+以下两种方式任选其一部署即可,推荐二进制文件部署,有经验的小伙伴也可以使用源码部署
+
+### 2.1 二进制文件部署
+
+- 安装zookeeper工具 
+
+   `pip install kazoo`
+
+- 切换到部署用户,一键部署
+
+    `sh install.sh` 
+
+- 使用`jps`命令查看服务是否启动(`jps`为`java JDK`自带)
+
+```aidl
+    MasterServer         ----- master服务
+    WorkerServer         ----- worker服务
+    LoggerServer         ----- logger服务
+    ApiApplicationServer ----- api服务
+    AlertServer          ----- alert服务
+```
+如果以上服务都正常启动,说明自动部署成功
+
+
+部署成功后,可以进行日志查看,日志统一存放于指定文件夹内
+
+```日志路径
+ logs/
+    ├── dolphinscheduler-alert-server.log
+    ├── dolphinscheduler-master-server.log
+    |—— dolphinscheduler-worker-server.log
+    |—— dolphinscheduler-api-server.log
+    |—— dolphinscheduler-logger-server.log
+```
+
+### 2.2 编译源码来部署
+
+将源码包release版本下载后,解压进入根目录
+
+* 编译生成tar包
+
+    tar包的好处是解压即可安装
+
+    执行编译命令:
+
+    ```
+     mvn -U clean package -Prelease -Dmaven.test.skip=true
+    ```
+
+    查看目录
+
+    正常编译完后,会在 `dolphinscheduler-dist/dolphinscheduler-backend/target`目录下生成
+    `apache-dolphinscheduler-incubating-${latest.release.version}-dolphinscheduler-backend-bin.tar.gz`
+       
+       
+* 或者编译生成rpm包
+
+    rpm包可以在linux平台使用rpm命令或者yum命令来安装,rpm包可以用来帮助Dolphinscheduler更方便的集成到其它管理工具,比如Ambari,Cloudera Manager等。
+    
+    执行编译命令:
+    
+    ```
+     mvn -U clean package -Prpmbuild -Dmaven.test.skip=true
+    ```
+    
+    查看目录   
+    
+    正常编译完后,会在 `dolphinscheduler-dist/target/rpm/apache-dolphinscheduler-incubating/RPMS/noarch/`目录下生成
+   `apache-dolphinscheduler-incubating-${latest.release.version}-1.noarch.rpm`
+
+* 解压编译好的tar.gz包或者使用rpm命令安装后(rpm的安装方式会将dolphinscheduler安装在/opt/soft目录下)dolphinscheduler目录结构如下:           
+       
+```查看目录
+ ../
+    ├── bin
+    ├── conf
+    |── DISCLAIMER-WIP
+    |—— install.sh
+    |—— lib
+    |—— LICENSE
+    |—— licenses
+    |—— NOTICE
+    |—— script
+    |—— sql
+```
+- 安装zookeeper工具
+
+   `pip install kazoo`
+
+- 切换到部署用户,一键部署
+
+    `sh install.sh`
+
+### 2.3 系统常用启停服务(服务用途请具体参见《系统架构设计》小节)
+
+* 一键停止集群所有服务
+   
+   ` sh ./bin/stop-all.sh`
+   
+* 一键开启集群所有服务
+   
+   ` sh ./bin/start-all.sh`
+
+* 启停Master
+
+```启动master
+sh ./bin/dolphinscheduler-daemon.sh start master-server
+sh ./bin/dolphinscheduler-daemon.sh stop master-server
+```
+
+* 启停Worker
+
+```
+sh ./bin/dolphinscheduler-daemon.sh start worker-server
+sh ./bin/dolphinscheduler-daemon.sh stop worker-server
+```
+
+* 启停Api
+
+```
+sh ./bin/dolphinscheduler-daemon.sh start api-server
+sh ./bin/dolphinscheduler-daemon.sh stop api-server
+```
+* 启停Logger
+
+```
+sh ./bin/dolphinscheduler-daemon.sh start logger-server
+sh ./bin/dolphinscheduler-daemon.sh stop logger-server
+```
+* 启停Alert
+
+```
+sh ./bin/dolphinscheduler-daemon.sh start alert-server
+sh ./bin/dolphinscheduler-daemon.sh stop alert-server
+```
+
+## 3、数据库升级
+修改./conf/application-dao.properties中的下列属性
+
+    ```
+        spring.datasource.url
+        spring.datasource.username
+        spring.datasource.password
+    ```
+执行以下命令即可自动升级数据库
+```
+sh ./script/upgrade-dolphinscheduler.sh
+```
diff --git a/docs/zh-cn/1.2.1/user_doc/frontend-deployment.md b/docs/zh-cn/1.2.1/user_doc/frontend-deployment.md
new file mode 100755
index 0000000..4751dea
--- /dev/null
+++ b/docs/zh-cn/1.2.1/user_doc/frontend-deployment.md
@@ -0,0 +1,116 @@
+# 前端部署文档
+
+前端有3种部署方式,分别为自动化部署,手动部署和编译源码部署
+
+## 1、准备工作
+#### 下载安装包
+
+请下载最新版本的安装包,下载地址: [下载](https://dolphinscheduler.apache.org/zh-cn/docs/release/download.html)
+
+下载 apache-dolphinscheduler-incubating-x.x.x-dolphinscheduler-front-bin.tar.gz 后,
+解压`tar -zxvf apache-dolphinscheduler-incubating-x.x.x-dolphinscheduler-front-bin.tar.g ./`后,进入`dolphinscheduler-ui`目录
+
+
+
+
+## 2、部署
+以下两种方式任选其一部署即可,推荐自动化部署
+### 2.1 自动化部署
+
+>前端自动部署基于linux系统`yum`操作,部署之前请先安装更新`yum`
+
+在该目录下执行`./install-dolphinscheduler-ui.sh`
+
+
+### 2.2 手动部署
+以下两种部署方式任选其一即可,也可以根据自己生产环境情况自行选择其他方式部署
+
+#### 2.2.1 nginx方式部署
+选装epel源 `yum install epel-release -y`
+
+自行安装Nginx,去官网下载: http://nginx.org/en/download.html  或者 `yum install nginx -y` 
+
+
+> ####  nginx配置文件地址
+```
+/etc/nginx/conf.d/default.conf
+```
+> ####  配置信息(自行修改)
+```
+server {
+    listen       8888;# 访问端口
+    server_name  localhost;
+    #charset koi8-r;
+    #access_log  /var/log/nginx/host.access.log  main;
+    location / {
+        root   /xx/dist; # 上面前端解压的dist目录地址(自行修改)
+        index  index.html index.html;
+    }
+    location /dolphinscheduler {
+        proxy_pass http://192.168.xx.xx:12345; # 接口地址(自行修改)
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header x_real_ipP $remote_addr;
+        proxy_set_header remote_addr $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_http_version 1.1;
+        proxy_connect_timeout 4s;
+        proxy_read_timeout 30s;
+        proxy_send_timeout 12s;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection "upgrade";
+    }
+    #error_page  404              /404.html;
+    # redirect server error pages to the static page /50x.html
+    #
+    error_page   500 502 503 504  /50x.html;
+    location = /50x.html {
+        root   /usr/share/nginx/html;
+    }
+}
+```
+> ####  重启Nginx服务
+```
+systemctl restart nginx
+```
+
+#### nginx命令
+
+- 启用 `systemctl enable nginx`
+
+- 重启 `systemctl restart nginx`
+
+- 状态 `systemctl status nginx`
+
+#### 2.2.2 jetty方式部署
+在源码包`dolphinscheduler-ui`目录下执行
+
+```
+npm install
+```
+
+> #####  !!!这里特别注意 项目如果在拉取依赖包的过程中报 " node-sass error " 错误,请在执行完后再次执行以下命令
+```
+npm install node-sass --unsafe-perm //单独安装node-sass依赖
+```
+
+```
+npm run build:release
+```
+
+在后端二进制包目录下创建ui目录
+
+拷贝dolphinscheduler-ui/dist目录下所有的文件到后端二进制包ui目录下
+
+访问以下url,接口地址(自行修改)
+http://192.168.xx.xx:12345/dolphinscheduler
+
+
+
+## 前端常见问题
+####  1. 上传文件大小限制
+编辑配置文件 `vi /etc/nginx/nginx.conf`
+```
+# 更改上传大小
+client_max_body_size 1024m
+```
diff --git a/site_config/docs1-2-1.js b/site_config/docs1-2-1.js
new file mode 100644
index 0000000..6404e1a
--- /dev/null
+++ b/site_config/docs1-2-1.js
@@ -0,0 +1,64 @@
+export default {
+    'en-us': {
+        sidemenu: [
+            {
+                title: 'Deployment Document',
+                children: [
+                    {
+                        title: 'Hareware Environment',
+                        link: '/en-us/docs/1.2.1/user_doc/hardware-environment.html',
+                    },
+                    {
+                        title: 'Backend deploy',
+                        link: '/en-us/docs/1.2.1/user_doc/backend-deployment.html',
+                    },
+                    {
+                        title: 'Frontend deploy',
+                        link: '/en-us/docs/1.2.1/user_doc/frontend-deployment.html',
+                    }
+                ]
+            },
+            {
+                title: 'User Manual',
+                children: [
+                    {
+                        title: 'Quick Start',
+                        link: '/en-us/docs/1.2.1/user_doc/quick-start.html',
+                    }
+                ]
+            }
+        ],
+        barText: 'Documentation',
+    },
+    'zh-cn': {
+        sidemenu: [
+            {
+                title: '部署文档',
+                children: [
+                    {
+                        title: '软硬件环境建议配置',
+                        link: '/zh-cn/docs/1.2.1/user_doc/hardware-environment.html',
+                    },
+                    {
+                        title: '单机部署(Standalone)',
+                        link: '/zh-cn/docs/1.2.1/user_doc/standalone-deployment.html',
+                    },
+                    {
+                        title: '集群部署(Cluster)',
+                        link: '/zh-cn/docs/1.2.1/user_doc/cluster-deployment.html',
+                    }
+                ],
+            },
+            {
+                title: '用户手册',
+                children: [
+                    {
+                        title: '快速上手',
+                        link: '/zh-cn/docs/1.2.1/user_doc/quick-start.html',
+                    }
+                ],
+            }
+        ],
+        barText: '文档'
+    }
+};
diff --git a/src/pages/documentation/index.jsx b/src/pages/documentation/index.jsx
index 8e5d3a1..992f3b7 100755
--- a/src/pages/documentation/index.jsx
+++ b/src/pages/documentation/index.jsx
@@ -9,6 +9,7 @@ import Bar from '../../components/bar';
 import Sidemenu from '../../components/sidemenu';
 import Footer from '../../components/footer';
 import docsConfig from '../../../site_config/docs';
+import docsConfig1 from '../../../site_config/docs1-2-1';
 import devConfig from '../../../site_config/development';
 import './index.scss';
 
@@ -88,10 +89,16 @@ class Documentation extends Language {
 
   render() {
     const language = this.getLanguage();
-    let dataSource = docsConfig[language];
+    let dataSource = docsConfig1[language];
     if (window.location.pathname.indexOf('/development/') >= 0) {
       dataSource = devConfig[language];
     }
+    if (window.location.pathname.indexOf('/1.2.1/') >= 0) {
+      dataSource = docsConfig1[language];
+    }
+    if (window.location.pathname.indexOf('/1.2.0/') >= 0) {
+      dataSource = docsConfig[language];
+    }
     const __html = this.props.__html || this.state.__html;
     return (
       <div className="documentation-page">