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

[incubator-dolphinscheduler-website] branch asf-site updated: Automated deployment: Tue Mar 3 03:26:22 UTC 2020 b5040cf267c9d784276035cfd27f2de3d43ac0ee

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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new bcd0839  Automated deployment: Tue Mar  3 03:26:22 UTC 2020 b5040cf267c9d784276035cfd27f2de3d43ac0ee
bcd0839 is described below

commit bcd0839ff699f092a67bba336a371ec71965bf80
Author: dailidong <da...@users.noreply.github.com>
AuthorDate: Tue Mar 3 03:26:22 2020 +0000

    Automated deployment: Tue Mar  3 03:26:22 UTC 2020 b5040cf267c9d784276035cfd27f2de3d43ac0ee
---
 build/documentation.js                             |   2 +-
 en-us/docs/1.2.0/user_doc/cluster-deployment.html  | 478 +++++++++++++++++++++
 en-us/docs/1.2.0/user_doc/cluster-deployment.json  |   6 +
 .../docs/1.2.0/user_doc/standalone-deployment.html | 438 +++++++++++++++++++
 .../docs/1.2.0/user_doc/standalone-deployment.json |   6 +
 5 files changed, 929 insertions(+), 1 deletion(-)

diff --git a/build/documentation.js b/build/documentation.js
index 8e7d75e..7aec56f 100644
--- a/build/documentation.js
+++ b/build/documentation.js
@@ -40,4 +40,4 @@ Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol
  * Copyright © 2012-2019 Faisal Salman <f...@faisalman.com>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var n,r,o,i,a,c,s=0;s<t.length&&!a;){var l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof i&&i.length>0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var n,r,o,i,a,c,s=0;s<t.length&&!a;){var l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof i&&i.length>0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/en-us/docs/1.2.0/user_doc/cluster-deployment.html b/en-us/docs/1.2.0/user_doc/cluster-deployment.html
new file mode 100644
index 0000000..ec8ce16
--- /dev/null
+++ b/en-us/docs/1.2.0/user_doc/cluster-deployment.html
@@ -0,0 +1,478 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+	<meta name="keywords" content="cluster-deployment" />
+	<meta name="description" content="cluster-deployment" />
+	<!-- 网页标签标题 -->
+	<title>cluster-deployment</title>
+	<link rel="shortcut icon" href="/img/docsite.ico"/>
+	<link rel="stylesheet" href="/build/documentation.css" />
+</head>
+<body>
+	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/en-us/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">中</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass ant [...]
+<p>DolphinScheduler Cluster deployment is divided into two parts: backend deployment and frontend deployment.</p>
+<h1>1、Backend Deployment</h1>
+<h3>1.1: Before you begin (please install requirement basic software by yourself)</h3>
+<ul>
+<li>PostgreSQL (8.2.15+) or Mysql (5.7): Choose One</li>
+<li><a href="https://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK</a> (1.8+):  Required. Double-check configure JAVA_HOME and PATH environment variables in /etc/profile</li>
+<li>ZooKeeper (3.4.6+): Required</li>
+<li>Hadoop (2.6+) or MinIO: Optional. If you need to upload a resource function, you can choose a local file directory as the upload folder for a single machine (this operation does not need to deploy Hadoop). Of course, you can also choose to upload to Hadoop or MinIO.</li>
+</ul>
+<pre><code class="language-markdown"> Tips:DolphinScheduler itself does not rely on Hadoop, Hive, Spark, only use their clients for the corresponding task of running.
+</code></pre>
+<h3>1.2: Download the backend package.</h3>
+<ul>
+<li>Please download the latest version of the default installation package to the server deployment directory. For example, use /opt/dolphinscheduler as the installation and deployment directory. Download address: <a href="https://dolphinscheduler.apache.org/en-us/docs/release/download.html">Download</a> (Take 1.2.0 for an example). Download the package and move to the installation and deployment directory. Then unzip it.</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> Create the deployment directory. Do not choose a deployment directory with a high-privilege directory such as / root or / home.</span>
+mkdir -p /opt/dolphinscheduler;
+cd /opt/dolphinscheduler;
+<span class="hljs-meta">#</span><span class="bash"> unzip</span>
+tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin.tar.gz -C /opt/dolphinscheduler;
+
+mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin  dolphinscheduler-backend
+</code></pre>
+<h3>1.3:Create deployment user and hosts mapping</h3>
+<ul>
+<li>Create a deployment user on the ** all ** deployment machines, and be sure to configure sudo passwordless. If we plan to deploy DolphinScheduler on 4 machines: ds1, ds2, ds3, and ds4, we first need to create a deployment user on each machine.</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> To create a user, you need to <span class="hljs-built_in">log</span> <span class="hljs-keyword">in</span> as root and <span class="hljs-built_in">set</span> the deployment user name. Please modify it yourself. The following uses dolphinscheduler as an example.</span>
+useradd dolphinscheduler;
+<span class="hljs-meta">
+#</span><span class="bash"> Set the user password, please modify it yourself. The following takes dolphinscheduler123 as an example.</span>
+echo "dolphinscheduler123" | passwd --stdin dolphinscheduler
+<span class="hljs-meta">
+#</span><span class="bash"> Configure sudo passwordless</span>
+echo 'dolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' &gt;&gt; /etc/sudoers
+</code></pre>
+<pre><code> Notes:
+ - Because the task execution service is based on 'sudo -u {linux-user}' to switch between different Linux users to implement multi-tenant running jobs, the deployment user needs to have sudo permissions and is passwordless. The first-time learners who can ignore it if they don't understand.
+ - If find the &quot;Default requiretty&quot; in the &quot;/etc/sudoers&quot; file, also comment out.
+ - If you need to use resource upload, you need to assign the user of permission to operate the local file system, HDFS or MinIO.
+</code></pre>
+<h3>1.4 : Configure hosts mapping and ssh access and modify directory permissions.</h3>
+<ul>
+<li>
+<p>Use the first machine (hostname is ds1) as the deployment machine, configure the hosts of all machines to be deployed on ds1, and login as root on ds1.</p>
+<pre><code class="language-shell">vi /etc/hosts
+<span class="hljs-meta">
+#</span><span class="bash"> add ip hostname</span>
+192.168.xxx.xxx ds1
+192.168.xxx.xxx ds2
+192.168.xxx.xxx ds3
+192.168.xxx.xxx ds4
+</code></pre>
+<p><em>Note: Please delete or comment out the line 127.0.0.1</em></p>
+</li>
+<li>
+<p>Sync /etc/hosts on ds1 to all deployment machines</p>
+<pre><code class="language-shell">for ip in ds2 ds3;     # Please replace ds2 ds3 here with the hostname of machines you want to deploy
+do
+    sudo scp -r /etc/hosts  $ip:/etc/          # Need to enter root password during operation
+done
+</code></pre>
+<p><em>Note: can use <code>sshpass -p xxx sudo scp -r /etc/hosts $ip:/etc/</code> to avoid type password.</em></p>
+<blockquote>
+<p>Install sshpass in Centos:</p>
+<ol>
+<li>
+<p>Install epel</p>
+<p>yum install -y epel-release</p>
+<p>yum repolist</p>
+</li>
+<li>
+<p>After installing epel, you can install sshpass</p>
+<p>yum install -y sshpass</p>
+</li>
+</ol>
+</blockquote>
+</li>
+<li>
+<p>On ds1, switch to the deployment user and configure ssh passwordless login</p>
+<pre><code class="language-shell">su dolphinscheduler;
+
+ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
+cat ~/.ssh/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys
+chmod 600 ~/.ssh/authorized_keys
+</code></pre>
+<p>Note: <em>If configure success, the dolphinscheduler user does not need to enter a password when executing the command <code>ssh localhost</code></em></p>
+</li>
+<li>
+<p>On ds1, configure the deployment user dolphinscheduler ssh to connect to other machines to be deployed.</p>
+<pre><code class="language-shell">su dolphinscheduler;
+for ip in ds2 ds3;     # Please replace ds2 ds3 here with the hostname of the machine you want to deploy.
+do
+    ssh-copy-id  $ip   # You need to manually enter the password of the dolphinscheduler user during the operation.
+done
+<span class="hljs-meta">#</span><span class="bash"> can use `sshpass -p xxx ssh-copy-id <span class="hljs-variable">$ip</span>` to avoid <span class="hljs-built_in">type</span> password.</span>
+</code></pre>
+</li>
+<li>
+<p>On ds1, modify the directory permissions so that the deployment user has operation permissions on the dolphinscheduler-backend directory.</p>
+<pre><code class="language-shell">sudo chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-backend
+</code></pre>
+</li>
+</ul>
+<h3>1.5: Database initialization</h3>
+<ul>
+<li>Into the database. The default database is PostgreSQL. If you select Mysql, you need to add the mysql-connector-java driver package to the lib directory of DolphinScheduler.</li>
+</ul>
+<pre><code>mysql -uroot -p
+</code></pre>
+<ul>
+<li>After entering the database command line window, execute the database initialization command and set the user and password. <strong>Note: {user} and {password} need to be replaced with a specific database username and password</strong></li>
+</ul>
+<pre><code class="language-mysql">   mysql&gt; CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
+   mysql&gt; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
+   mysql&gt; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
+   mysql&gt; flush privileges;
+</code></pre>
+<ul>
+<li>
+<p>Create tables and import basic data</p>
+<ul>
+<li>Modify the following configuration in application-dao.properties under the conf directory</li>
+</ul>
+<pre><code class="language-shell">  vi conf/application-dao.properties 
+</code></pre>
+<ul>
+<li>If you choose Mysql, please comment out the relevant configuration of PostgreSQL (vice versa), you also need to manually add the [[mysql-connector-java driver jar] (<a href="https://downloads.mysql.com/archives/c-j/">https://downloads.mysql.com/archives/c-j/</a>)] package to lib under the directory, and then configure the database connection information correctly.</li>
+</ul>
+<pre><code class="language-properties"><span class="hljs-comment">  #postgre</span>
+<span class="hljs-comment">  #spring.datasource.driver-class-name=org.postgresql.Driver</span>
+<span class="hljs-comment">  #spring.datasource.url=jdbc:postgresql://localhost:5432/dolphinscheduler</span>
+<span class="hljs-comment">  # mysql</span>
+  <span class="hljs-meta">spring.datasource.driver-class-name</span>=<span class="hljs-string">com.mysql.jdbc.Driver</span>
+  <span class="hljs-meta">spring.datasource.url</span>=<span class="hljs-string">jdbc:mysql://xxx:3306/dolphinscheduler?useUnicode=true&amp;characterEncoding=UTF-8  # Replace the correct IP address</span>
+  <span class="hljs-meta">spring.datasource.username</span>=<span class="hljs-string">xxx						# replace the currect {user} value</span>
+  <span class="hljs-meta">spring.datasource.password</span>=<span class="hljs-string">xxx						# replace the currect {password} value</span>
+</code></pre>
+<ul>
+<li>After modifying and saving, execute the create table and import data script in the script directory.</li>
+</ul>
+<pre><code class="language-shell">sh script/create-dolphinscheduler.sh
+</code></pre>
+</li>
+</ul>
+<p>​       <em>Note: If you execute the above script and report &quot;/bin/java: No such file or directory&quot; error, please configure JAVA_HOME and PATH variables in /etc/profile</em></p>
+<h3>1.6: Modify runtime parameters.</h3>
+<ul>
+<li>
+<p>Modify the environment variable in <code>.dolphinscheduler_env.sh</code> file which on the 'conf/env' directory (take the relevant software installed under '/opt/soft' as an example)</p>
+<pre><code class="language-shell">export HADOOP_HOME=/opt/soft/hadoop
+export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
+<span class="hljs-meta">#</span><span class="bash"><span class="hljs-built_in">export</span> SPARK_HOME1=/opt/soft/spark1</span>
+export SPARK_HOME2=/opt/soft/spark2
+export PYTHON_HOME=/opt/soft/python
+export JAVA_HOME=/opt/soft/java
+export HIVE_HOME=/opt/soft/hive
+export FLINK_HOME=/opt/soft/flink
+export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$PATH
+</code></pre>
+<pre><code>`Note: This step is very important. For example, JAVA_HOME and PATH must be configured. Those that are not used can be ignored or commented out. If &quot;.dolphinscheduler_env.sh&quot; cannot be found, run &quot;ls -a&quot;`
+</code></pre>
+</li>
+<li>
+<p>Create Soft link jdk to /usr/bin/java (still JAVA_HOME=/opt/soft/java as an example)</p>
+<pre><code class="language-shell">sudo ln -s /opt/soft/java/bin/java /usr/bin/java
+</code></pre>
+</li>
+<li>
+<p>Modify the parameters in the one-click deployment script <code>install.sh</code>, pay special attention to the configuration of the following parameters.</p>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> Choose mysql or postgresql</span>
+dbtype="mysql"
+<span class="hljs-meta">
+#</span><span class="bash"> Database connection address</span>
+dbhost="192.168.xx.xx:3306"
+<span class="hljs-meta">
+#</span><span class="bash"> Database schema name</span>
+dbname="dolphinscheduler"
+<span class="hljs-meta">
+#</span><span class="bash"> Database username</span>
+username="xxx"    
+<span class="hljs-meta">
+#</span><span class="bash"> Database password, <span class="hljs-keyword">if</span> there are special characters, please use <span class="hljs-string">'\'</span> escape, you need to modify the specific value of {passowrd} <span class="hljs-built_in">set</span> above</span>
+passowrd="xxx"
+<span class="hljs-meta">
+#</span><span class="bash"> The directory <span class="hljs-built_in">where</span> DS is installed, such as: <span class="hljs-string">'/opt/soft/dolphinscheduler'</span>, <span class="hljs-built_in">which</span> is different from the current directory.</span>
+installPath="/opt/soft/dolphinscheduler"
+<span class="hljs-meta">
+#</span><span class="bash"> The system user created <span class="hljs-keyword">in</span> section 1.3.</span>
+deployUser="dolphinscheduler"
+<span class="hljs-meta">
+#</span><span class="bash"> zookeeper cluster address</span>
+zkQuorum="192.168.xx.xx:2181,192.168.xx.xx:2181,192.168.xx.xx:2181"
+<span class="hljs-meta">
+#</span><span class="bash"> On machines <span class="hljs-built_in">which</span> the DS service is deployed</span>
+ips="ds1,ds2,ds3,ds4"
+<span class="hljs-meta">
+#</span><span class="bash"> On machines <span class="hljs-built_in">which</span> the master service is deployed</span>
+masters="ds1,ds2"
+<span class="hljs-meta">
+#</span><span class="bash"> On machines <span class="hljs-built_in">which</span> the worker service is deployed</span>
+workers="ds3,ds4"
+<span class="hljs-meta">
+#</span><span class="bash"> On machines <span class="hljs-built_in">which</span> the alert service is deployed</span>
+alertServer="ds2"
+<span class="hljs-meta">
+#</span><span class="bash"> On machines <span class="hljs-built_in">which</span> the api service is deployed</span>
+apiServers="ds1"
+<span class="hljs-meta">
+
+#</span><span class="bash"> EMail configuration, taking QQ mailbox as an example</span>
+<span class="hljs-meta">#</span><span class="bash"> EMail protocol</span>
+mailProtocol="SMTP"
+<span class="hljs-meta">
+#</span><span class="bash"> EMail server address</span>
+mailServerHost="smtp.exmail.qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> EMail server Port</span>
+mailServerPort="25"
+<span class="hljs-meta">
+#</span><span class="bash"> mailSender and mailUser can be the same one.</span>
+<span class="hljs-meta">#</span><span class="bash"> Sender</span>
+mailSender="xxx@qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> Receiver</span>
+mailUser="xxx@qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> EMail password</span>
+mailPassword="xxx"
+<span class="hljs-meta">
+#</span><span class="bash"> Set <span class="hljs-literal">true</span> <span class="hljs-keyword">if</span> the mailbox is TLS protocol, otherwise <span class="hljs-built_in">set</span> to <span class="hljs-literal">false</span>.</span>
+starttlsEnable="true"
+<span class="hljs-meta">
+#</span><span class="bash"> Mail service address value, refer to mailServerHost above.</span>
+sslTrust="smtp.exmail.qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> Set <span class="hljs-literal">true</span> <span class="hljs-keyword">if</span> the mailbox is SSL protocol, otherwise <span class="hljs-built_in">set</span> to <span class="hljs-literal">false</span>. Note: starttlsEnable and sslEnable cannot be <span class="hljs-literal">true</span> at the same time.</span>
+sslEnable="false"
+<span class="hljs-meta">
+#</span><span class="bash"> Download path of excel</span>
+xlsFilePath="/tmp/xls"
+<span class="hljs-meta">
+#</span><span class="bash"> Where are some sql and other resource files used <span class="hljs-keyword">for</span> business uploaded. Can be <span class="hljs-built_in">set</span>: HDFS, S3, NONE. If a standalone wants to use the <span class="hljs-built_in">local</span> file system, please configure it as HDFS, because HDFS supports the <span class="hljs-built_in">local</span> file system; <span class="hljs-keyword">if</span> you <span class="hljs-keyword">do</span> not need the resource [...]
+resUploadStartupType="HDFS"
+<span class="hljs-meta">
+#</span><span class="bash"> Note: If you want to upload to HDFS and the NameNode has HA enabled, you need to put core-site.xml and hdfs-site.xml <span class="hljs-keyword">in</span> the conf directory. In this example, it is placed under /opt/dolphinscheduler/conf, and Configure the namenode cluster name; <span class="hljs-keyword">if</span> the NameNode is not HA, modify it to a specific IP or host name.</span>
+defaultFS="hdfs://mycluster:8020"
+<span class="hljs-meta">
+
+#</span><span class="bash"> If the ResourceManager is HA, configure it as the active-standby IP or hostname of the ResourceManager node, such as <span class="hljs-string">"192.168.xx.xx, 192.168.xx.xx"</span>; otherwise, <span class="hljs-keyword">if</span> it is a single ResourceManager or yarn is not used at all, please configure yarnHaIps = <span class="hljs-string">""</span>. That<span class="hljs-string">'s it, I don'</span>t use yarn here, the configuration is <span class="hljs-str [...]
+yarnHaIps=""
+<span class="hljs-meta">
+#</span><span class="bash"> If it is a single ResourceManager, configure it as the ResourceManager node ip or hostname, otherwise, keep the default value. Yarn is not used here, keep the default.</span>
+singleYarnIp="ark1"
+</code></pre>
+<p><em>Attention:</em></p>
+<ul>
+<li>If you need to upload resources to the Hadoop cluster, and the NameNode of the Hadoop cluster is configured with HA, you need to enable HDFS resource upload, and you need to copy the core-site.xml and hdfs-site.xml in the Hadoop cluster to /opt/ dolphinscheduler/conf. Non-NameNode HA skips the next step.</li>
+</ul>
+</li>
+</ul>
+<h3>1.7: Install python's zookeeper tool kazoo</h3>
+<ul>
+<li>Install python's zookeeper tool. <code>This step is only used for one-click deployment.</code></li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> Install pip</span>
+sudo yum -y install python-pip;  # ubuntu: sudo apt-get install python-pip
+sudo pip install kazoo;
+</code></pre>
+<p><em>Note: If yum does not find python-pip, you can also install it by following commands</em></p>
+<pre><code class="language-shell">sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
+sudo python get-pip.py  # 如果是python3,使用sudo python3 get-pip.py 
+<span class="hljs-meta">#</span><span class="bash"> <span class="hljs-keyword">then</span></span>
+sudo pip install kazoo;
+</code></pre>
+<ul>
+<li>
+<p>Switch to the deployment user and execute the one-click deployment script</p>
+<p><code>sh install.sh</code></p>
+</li>
+</ul>
+<pre><code>Note:
+For the first deployment, the following message appears in step 3 of `3, stop server` during operation. This message can be ignored.
+sh: bin/dolphinscheduler-daemon.sh: No such file or directory
+</code></pre>
+<ul>
+<li>After the script is completed, the following 5 services will be started. Use the <code>jps</code> command to check whether the services are started (<code>jps</code> comes with <code>java JDK</code>)</li>
+</ul>
+<pre><code class="language-aidl">    MasterServer         ----- master service
+    WorkerServer         ----- worker service
+    LoggerServer         ----- logger service
+    ApiApplicationServer ----- api service
+    AlertServer          ----- alert service
+</code></pre>
+<p>If the above services are started normally, the automatic deployment is successful.</p>
+<p>After the deployment is successful, you can view the logs. The logs are stored in the logs folder.</p>
+<pre><code class="language-log"> logs/
+    ├── dolphinscheduler-alert-server.log
+    ├── dolphinscheduler-master-server.log
+    |—— dolphinscheduler-worker-server.log
+    |—— dolphinscheduler-api-server.log
+    |—— dolphinscheduler-logger-server.log
+</code></pre>
+<h1>2. Frontend Deployment</h1>
+<p>Please download the latest version of the frontend installation package to the server deployment directory, download address: [Download] (<a href="https://dolphinscheduler.apache.org/en-us/docs/release/download.html">https://dolphinscheduler.apache.org/en-us/docs/release/download.html</a>) (Take 1.2.0 version as an example ), Upload the tar.gz package to this directory after downloading and unzip it.</p>
+<pre><code class="language-shell">cd /opt/dolphinscheduler;
+
+tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin.tar.gz -C /opt/dolphinscheduler;
+
+mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin dolphinscheduler-ui
+</code></pre>
+<p><strong>Choose any one of the following methods, automated deployment is recommended.</strong></p>
+<h3>2.1 Automated Deployment</h3>
+<ul>
+<li>
+<p>Enter the dolphinscheduler-ui directory and execute (<code>Note: Automated deployment will automatically download nginx</code>)</p>
+<pre><code class="language-shell">cd dolphinscheduler-ui;
+sh ./install-dolphinscheduler-ui.sh;
+</code></pre>
+<ul>
+<li>After the execution, please type the frontend port during operation, the default port is 8888, if you choose the default, type 'y', or type another port.</li>
+<li>Then it will let you type the api-server ip that interacts with the frontend UI.</li>
+<li>Next is the port of the api-server that lets you type to interact with the frontend UI.</li>
+<li>Next is the operating system selection.</li>
+<li>Wait for deployment to complete.</li>
+</ul>
+</li>
+<li>
+<p>After deployment, in order to prevent too large resources from uploading to the resource center, it is recommended to modify the nginx upload size parameters, as follows:</p>
+<ul>
+<li>Add Nginx configuration client_max_body_size 1024m, you can add it in the http method body.</li>
+</ul>
+<pre><code class="language-shell">vi /etc/nginx/nginx.conf
+<span class="hljs-meta">
+#</span><span class="bash"> add param</span>
+client_max_body_size 1024m;
+</code></pre>
+<ul>
+<li>Then restart Nginx service</li>
+</ul>
+<pre><code class="language-shell">systemctl restart nginx
+</code></pre>
+</li>
+<li>
+<p>Visit the front page address: <a href="http://localhost:8888">http://localhost:8888</a>. If the front login page appears, the front web installation is complete.</p>
+<pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">align</span>=<span class="hljs-string">"center"</span>&gt;</span>
+   <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"/img/login.png"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"60%"</span> /&gt;</span>
+ <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
+</code></pre>
+</li>
+</ul>
+<h3>2.2 Manual Deployment</h3>
+<ul>
+<li>
+<p>Install nginx by yourself, download it from the official website: Or <code>yum install nginx -y</code></p>
+</li>
+<li>
+<p>Modify the nginx configuration file (Note: some place need to be modified by yourself)</p>
+</li>
+</ul>
+<pre><code class="language-html">vi /etc/nginx/nginx.conf
+
+server {
+    listen       8888; # Your Port
+    server_name  localhost;
+    #charset koi8-r;
+    #access_log  /var/log/nginx/host.access.log  main;
+    location / {
+        root   /opt/soft/dolphinscheduler-ui/dist;      # Your dist directory which 
+        index  index.html index.html;
+    }
+    location /dolphinscheduler {
+        proxy_pass http://localhost:12345;    # Your ApiApplicationServer address
+        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;
+    }
+}
+</code></pre>
+<ul>
+<li>
+<p>Then restart Nginx service</p>
+<pre><code class="language-shell">systemctl restart nginx
+</code></pre>
+</li>
+<li>
+<p>Visit the front page address: <a href="http://localhost:8888">http://localhost:8888</a>. If the front login page appears, the front web installation is complete.</p>
+<pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">align</span>=<span class="hljs-string">"center"</span>&gt;</span>
+   <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"/img/login.png"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"60%"</span> /&gt;</span>
+ <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
+</code></pre>
+</li>
+</ul>
+<h1>3. Start and stop service</h1>
+<ul>
+<li>
+<p>Stop all services</p>
+<p><code>sh ./bin/stop-all.sh</code></p>
+</li>
+<li>
+<p>Start all services</p>
+<p><code>sh ./bin/start-all.sh</code></p>
+</li>
+<li>
+<p>Start and stop master service</p>
+</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start master-server
+sh ./bin/dolphinscheduler-daemon.sh stop master-server
+</code></pre>
+<ul>
+<li>Start and stop worker Service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start worker-server
+sh ./bin/dolphinscheduler-daemon.sh stop worker-server
+</code></pre>
+<ul>
+<li>Start and stop api Service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start api-server
+sh ./bin/dolphinscheduler-daemon.sh stop api-server
+</code></pre>
+<ul>
+<li>Start and stop logger Service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start logger-server
+sh ./bin/dolphinscheduler-daemon.sh stop logger-server
+</code></pre>
+<ul>
+<li>Start and stop alert service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start alert-server
+sh ./bin/dolphinscheduler-daemon.sh stop alert-server
+</code></pre>
+<p><code>Note: Please refer to the &quot;Architecture Design&quot; section for service usage</code></p>
+</div></section><footer class="footer-container"><div class="footer-body"><img src="/img/ds_gray.svg"/><div class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache DolphinScheduler (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. 
+Incubation is required of all newly accepted projects until a further review indicates 
+that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. 
+While incubation status is not necessarily a reflection of the completeness or stability of the code, 
+it does indicate that the project has yet to be fully endorsed by the ASF.</p></div><div class="col col-6"><dl><dt>Documentation</dt><dd><a href="/en-us/docs/1.2.0/user_doc/architecture-design.html" target="_self">Overview</a></dd><dd><a href="/en-us/docs/1.2.0/user_doc/quick-start.html" target="_self">Quick start</a></dd><dd><a href="/en-us/docs/1.2.0/user_doc/backend-development.html" target="_self">Developer guide</a></dd></dl></div><div class="col col-6"><dl><dt>ASF</dt><dd><a href=" [...]
+	<script src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js"></script>
+	<script src="https://f.alicdn.com/react/15.4.1/react-dom.min.js"></script>
+	<script>
+		window.rootPath = '';
+  </script>
+	<script src="/build/documentation.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/en-us/docs/1.2.0/user_doc/cluster-deployment.json b/en-us/docs/1.2.0/user_doc/cluster-deployment.json
new file mode 100644
index 0000000..70e120b
--- /dev/null
+++ b/en-us/docs/1.2.0/user_doc/cluster-deployment.json
@@ -0,0 +1,6 @@
+{
+  "filename": "cluster-deployment.md",
+  "__html": "<h1>Cluster Deployment</h1>\n<p>DolphinScheduler Cluster deployment is divided into two parts: backend deployment and frontend deployment.</p>\n<h1>1、Backend Deployment</h1>\n<h3>1.1: Before you begin (please install requirement basic software by yourself)</h3>\n<ul>\n<li>PostgreSQL (8.2.15+) or Mysql (5.7): Choose One</li>\n<li><a href=\"https://www.oracle.com/technetwork/java/javase/downloads/index.html\">JDK</a> (1.8+):  Required. Double-check configure JAVA_HOME and PATH [...]
+  "link": "/en-us/docs/1.2.0/user_doc/cluster-deployment.html",
+  "meta": {}
+}
\ No newline at end of file
diff --git a/en-us/docs/1.2.0/user_doc/standalone-deployment.html b/en-us/docs/1.2.0/user_doc/standalone-deployment.html
new file mode 100644
index 0000000..7962f97
--- /dev/null
+++ b/en-us/docs/1.2.0/user_doc/standalone-deployment.html
@@ -0,0 +1,438 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+	<meta name="keywords" content="standalone-deployment" />
+	<meta name="description" content="standalone-deployment" />
+	<!-- 网页标签标题 -->
+	<title>standalone-deployment</title>
+	<link rel="shortcut icon" href="/img/docsite.ico"/>
+	<link rel="stylesheet" href="/build/documentation.css" />
+</head>
+<body>
+	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/en-us/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">中</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass ant [...]
+<p>DolphinScheduler Standalone deployment is divided into two parts: backend deployment and frontend deployment.</p>
+<h1>1. Backend Deployment</h1>
+<h3>1.1: Before you begin (please install requirement basic software by yourself)</h3>
+<ul>
+<li>PostgreSQL (8.2.15+) or Mysql (5.6 or 5.7): Choose One</li>
+<li><a href="https://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK</a> (1.8+):  Required. Double-check configure JAVA_HOME and PATH environment variables in /etc/profile</li>
+<li>ZooKeeper (3.4.6+): Required</li>
+<li>Hadoop (2.6+) or MinIO: Optional. If you need to upload a resource function, you can choose a local file directory as the upload folder for a single machine (this operation does not need to deploy Hadoop). Of course, you can also choose to upload to Hadoop or MinIO.</li>
+</ul>
+<pre><code class="language-markdown"> Tips:DolphinScheduler itself does not rely on Hadoop, Hive, Spark, only use their clients for the corresponding task of running.
+</code></pre>
+<h3>1.2: Download the backend package.</h3>
+<ul>
+<li>Please download the latest version of the default installation package to the server deployment directory. For example, use /opt/dolphinscheduler as the installation and deployment directory. Download address: <a href="https://dolphinscheduler.apache.org/en-us/docs/release/download.html">Download</a> (Take 1.2.0 for an example). Download the package and move to the installation and deployment directory. Then unzip it.</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> Create the deployment directory. Do not choose a deployment directory with a high-privilege directory such as / root or / home.</span>
+mkdir -p /opt/dolphinscheduler;
+cd /opt/dolphinscheduler;
+<span class="hljs-meta">#</span><span class="bash"> unzip</span>
+tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin.tar.gz -C /opt/dolphinscheduler;
+ 
+mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-backend-bin  dolphinscheduler-backend
+</code></pre>
+<p>###1.3: Create an individual user for deployment and grant directory operation permissions</p>
+<ul>
+<li>Create an individual user, and be sure to configure sudo passwordless. Take creating 'dolphinscheduler' user as an example.</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> useradd need root permission</span>
+useradd dolphinscheduler;
+<span class="hljs-meta">
+#</span><span class="bash"> setup password</span>
+echo "dolphinscheduler" | passwd --stdin dolphinscheduler
+<span class="hljs-meta">
+#</span><span class="bash"> setup sudo passwordless</span>
+sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
+<span class="hljs-meta">
+#</span><span class="bash"> Modify the directory permissions so that the deployment user has operation permissions on the dolphinscheduler-backend directory </span>
+chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-backend
+</code></pre>
+<pre><code> Notes:
+ - Because the task execution service is based on 'sudo -u {linux-user}' to switch between different Linux users to implement multi-tenant running jobs, the deployment user needs to have sudo permissions and is passwordless. The first-time learners who can ignore it if they don't understand.
+ - If find the &quot;Default requiretty&quot; in the &quot;/etc/sudoers&quot; file, also comment out.
+ - If you need to use resource upload, you need to assign the user of permission to operate the local file system, HDFS or MinIO.
+</code></pre>
+<h3>1.4: ssh passwordless configuration</h3>
+<ul>
+<li>Switch to deployment user and configure ssh passwordless login</li>
+</ul>
+<pre><code class="language-shell">su dolphinscheduler;
+
+ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
+cat ~/.ssh/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys
+chmod 600 ~/.ssh/authorized_keys
+</code></pre>
+<p>Note: <em>If configure success, the dolphinscheduler user does not need to enter a password when executing the command <code>ssh localhost</code></em></p>
+<h3>1.5: Database initialization</h3>
+<ul>
+<li>Into the database. The default database is PostgreSQL. If you select Mysql, you need to add the mysql-connector-java driver package to the lib directory of DolphinScheduler.</li>
+</ul>
+<pre><code>mysql -uroot -p
+</code></pre>
+<ul>
+<li>
+<p>After entering the database command line window, execute the database initialization command and set the user and password. <strong>Note: {user} and {password} need to be replaced with a specific database username and password</strong></p>
+<pre><code class="language-mysql">mysql&gt; CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
+mysql&gt; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
+mysql&gt; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
+mysql&gt; flush privileges;
+</code></pre>
+</li>
+<li>
+<p>Create tables and import basic data</p>
+<ul>
+<li>
+<p>Modify the following configuration in application-dao.properties under the conf directory</p>
+<ul>
+<li>
+<pre><code class="language-shell">vi conf/application-dao.properties 
+</code></pre>
+</li>
+</ul>
+</li>
+<li>
+<p>If you choose Mysql, please comment out the relevant configuration of PostgreSQL (vice versa), you also need to manually add the [[mysql-connector-java driver jar] (<a href="https://downloads.mysql.com/archives/c-j/">https://downloads.mysql.com/archives/c-j/</a>)] package to lib under the directory, and then configure the database connection information correctly.</p>
+</li>
+</ul>
+<pre><code class="language-properties"><span class="hljs-comment">  # postgre</span>
+<span class="hljs-comment">  # spring.datasource.driver-class-name=org.postgresql.Driver</span>
+<span class="hljs-comment">  # spring.datasource.url=jdbc:postgresql://localhost:5432/dolphinscheduler</span>
+<span class="hljs-comment">  # mysql</span>
+  <span class="hljs-meta">spring.datasource.driver-class-name</span>=<span class="hljs-string">com.mysql.jdbc.Driver</span>
+  <span class="hljs-meta">spring.datasource.url</span>=<span class="hljs-string">jdbc:mysql://xxx:3306/dolphinscheduler?useUnicode=true&amp;characterEncoding=UTF-8     # Replace the correct IP address</span>
+  <span class="hljs-meta">spring.datasource.username</span>=<span class="hljs-string">xxx						# replace the currect {user} value</span>
+  <span class="hljs-meta">spring.datasource.password</span>=<span class="hljs-string">xxx						# replace the currect {password} value</span>
+</code></pre>
+<ul>
+<li>After modifying and saving, execute the create table and import data script in the script directory.</li>
+</ul>
+<pre><code class="language-shell">sh script/create-dolphinscheduler.sh
+</code></pre>
+</li>
+</ul>
+<p>​       <em>Note: If you execute the above script and report &quot;/bin/java: No such file or directory&quot; error, please configure JAVA_HOME and PATH variables in /etc/profile</em></p>
+<h3>1.6: Modify runtime parameters.</h3>
+<ul>
+<li>
+<p>Modify the environment variable in <code>.dolphinscheduler_env.sh</code> file which on the 'conf/env' directory (take the relevant software installed under '/opt/soft' as an example)</p>
+<pre><code class="language-shell">export HADOOP_HOME=/opt/soft/hadoop
+export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
+<span class="hljs-meta">#</span><span class="bash"><span class="hljs-built_in">export</span> SPARK_HOME1=/opt/soft/spark1</span>
+export SPARK_HOME2=/opt/soft/spark2
+export PYTHON_HOME=/opt/soft/python
+export JAVA_HOME=/opt/soft/java
+export HIVE_HOME=/opt/soft/hive
+export FLINK_HOME=/opt/soft/flink
+export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$PATH
+</code></pre>
+<p><code>Note: This step is very important. For example, JAVA_HOME and PATH must be configured. Those that are not used can be ignored or commented out. If &quot;.dolphinscheduler_env.sh&quot; cannot be found, run &quot;ls -a&quot;</code></p>
+</li>
+<li>
+<p>Create Soft link jdk to /usr/bin/java (still JAVA_HOME=/opt/soft/java as an example)</p>
+<pre><code class="language-shell">sudo ln -s /opt/soft/java/bin/java /usr/bin/java
+</code></pre>
+</li>
+<li>
+<p>Modify the parameters in the one-click deployment script <code>install.sh</code>, pay special attention to the configuration of the following parameters.</p>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> Choose mysql or postgresql</span>
+dbtype="mysql"
+<span class="hljs-meta">
+#</span><span class="bash"> Database connection address</span>
+dbhost="localhost:3306"
+<span class="hljs-meta">
+#</span><span class="bash"> Database schema name</span>
+dbname="dolphinscheduler"
+<span class="hljs-meta">
+#</span><span class="bash"> Database username</span>
+username="xxx"    
+<span class="hljs-meta">
+#</span><span class="bash"> Database password, <span class="hljs-keyword">if</span> there are special characters, please use <span class="hljs-string">'\'</span> escape, you need to modify the specific value of {passowrd} <span class="hljs-built_in">set</span> above</span>
+passowrd="xxx"
+<span class="hljs-meta">
+#</span><span class="bash"> The directory <span class="hljs-built_in">where</span> DS is installed, such as: <span class="hljs-string">'/opt/soft/dolphinscheduler'</span>, <span class="hljs-built_in">which</span> is different from the current directory.</span>
+installPath="/opt/soft/dolphinscheduler"
+<span class="hljs-meta">
+#</span><span class="bash"> The system user created <span class="hljs-keyword">in</span> section 1.3.</span>
+deployUser="dolphinscheduler"
+<span class="hljs-meta">
+#</span><span class="bash"> zookeeper connection address, standalone machine is localhost:2181, port must be provided.</span>
+zkQuorum="localhost:2181"
+<span class="hljs-meta">
+#</span><span class="bash"> On machine <span class="hljs-built_in">which</span> the DS service is deployed, <span class="hljs-built_in">set</span> localhost</span>
+ips="localhost"
+<span class="hljs-meta">
+#</span><span class="bash"> On machine <span class="hljs-built_in">which</span> the master service is deployed, <span class="hljs-built_in">set</span> localhost</span>
+masters="localhost"
+<span class="hljs-meta">
+#</span><span class="bash"> On machine <span class="hljs-built_in">which</span> the worker service is deployed, <span class="hljs-built_in">set</span> localhost</span>
+workers="localhost"
+<span class="hljs-meta">
+#</span><span class="bash"> On machine <span class="hljs-built_in">which</span> the alert service is deployed, <span class="hljs-built_in">set</span> localhost</span>
+alertServer="localhost"
+<span class="hljs-meta">
+#</span><span class="bash"> On machine <span class="hljs-built_in">which</span> the api service is deployed, <span class="hljs-built_in">set</span> localhost</span>
+apiServers="localhost"
+<span class="hljs-meta">
+
+#</span><span class="bash"> EMail configuration, taking QQ mailbox as an example</span>
+<span class="hljs-meta">#</span><span class="bash"> EMail protocol</span>
+mailProtocol="SMTP"
+<span class="hljs-meta">
+#</span><span class="bash"> EMail server address</span>
+mailServerHost="smtp.exmail.qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> EMail server Port</span>
+mailServerPort="25"
+<span class="hljs-meta">
+#</span><span class="bash"> mailSender and mailUser can be the same one.</span>
+<span class="hljs-meta">#</span><span class="bash"> Sender</span>
+mailSender="xxx@qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> Receiver</span>
+mailUser="xxx@qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> EMail password</span>
+mailPassword="xxx"
+<span class="hljs-meta">
+#</span><span class="bash"> Set <span class="hljs-literal">true</span> <span class="hljs-keyword">if</span> the mailbox is TLS protocol, otherwise <span class="hljs-built_in">set</span> to <span class="hljs-literal">false</span>.</span>
+starttlsEnable="true"
+<span class="hljs-meta">
+#</span><span class="bash"> Mail service address value, refer to mailServerHost above.</span>
+sslTrust="smtp.exmail.qq.com"
+<span class="hljs-meta">
+#</span><span class="bash"> Set <span class="hljs-literal">true</span> <span class="hljs-keyword">if</span> the mailbox is SSL protocol, otherwise <span class="hljs-built_in">set</span> to <span class="hljs-literal">false</span>. Note: starttlsEnable and sslEnable cannot be <span class="hljs-literal">true</span> at the same time.</span>
+sslEnable="false"
+<span class="hljs-meta">
+#</span><span class="bash"> Download path of excel</span>
+xlsFilePath="/tmp/xls"
+<span class="hljs-meta">
+#</span><span class="bash"> Where are some sql and other resource files used <span class="hljs-keyword">for</span> business uploaded. Can be <span class="hljs-built_in">set</span>: HDFS, S3, NONE. If a standalone wants to use the <span class="hljs-built_in">local</span> file system, please configure it as HDFS, because HDFS supports the <span class="hljs-built_in">local</span> file system; <span class="hljs-keyword">if</span> you <span class="hljs-keyword">do</span> not need the resource [...]
+resUploadStartupType="HDFS"
+<span class="hljs-meta">
+#</span><span class="bash"> Take the <span class="hljs-built_in">local</span> file system as an example.</span>
+<span class="hljs-meta">#</span><span class="bash"> Note: If you want to upload to HDFS and the NameNode has HA enabled, you need to put core-site.xml and hdfs-site.xml <span class="hljs-keyword">in</span> the conf directory. In this example, it is placed under /opt/dolphinscheduler/conf, and Configure the namenode cluster name; <span class="hljs-keyword">if</span> the NameNode is not HA, modify it to a specific IP or host name.</span>
+defaultFS="file:///data/dolphinscheduler"    # hdfs://{ip|hostname}:8020
+<span class="hljs-meta">
+
+#</span><span class="bash"> If the ResourceManager is HA, configure it as the active-standby IP or hostname of the ResourceManager node, such as <span class="hljs-string">"192.168.xx.xx, 192.168.xx.xx"</span>; otherwise, <span class="hljs-keyword">if</span> it is a single ResourceManager or yarn is not used at all, please configure yarnHaIps = <span class="hljs-string">""</span>. That<span class="hljs-string">'s it, I don'</span>t use yarn here, the configuration is <span class="hljs-str [...]
+yarnHaIps=""
+<span class="hljs-meta">
+#</span><span class="bash"> If it is a single ResourceManager, configure it as the ResourceManager node ip or hostname, otherwise, keep the default value. Yarn is not used here, keep the default.</span>
+singleYarnIp="ark1"
+<span class="hljs-meta">
+#</span><span class="bash"> Since HDFS supports the <span class="hljs-built_in">local</span> file system, you need to ensure that the <span class="hljs-built_in">local</span> folder exists and has <span class="hljs-built_in">read</span> and write permissions.</span>
+hdfsPath="/data/dolphinscheduler"
+</code></pre>
+<p><em>Note: If you plan to use the <code>Resource Center</code> function, execute the following command:</em></p>
+<pre><code class="language-shell">sudo mkdir /data/dolphinscheduler
+sudo chown -R dolphinscheduler:dolphinscheduler /data/dolphinscheduler
+</code></pre>
+</li>
+</ul>
+<h3>1.7: Install python's zookeeper tool kazoo</h3>
+<ul>
+<li>Install python's zookeeper tool. <code>This step is only used for one-click deployment.</code></li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">#</span><span class="bash"> Install pip</span>
+sudo yum -y install python-pip;  # ubuntu: sudo apt-get install python-pip
+sudo pip install kazoo;
+</code></pre>
+<p><em>Note: If yum does not find python-pip, you can also install it by following commands</em></p>
+<pre><code class="language-shell">sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
+sudo python get-pip.py  # python3: sudo python3 get-pip.py 
+<span class="hljs-meta">#</span><span class="bash"> <span class="hljs-keyword">then</span></span>
+sudo pip install kazoo;
+</code></pre>
+<ul>
+<li>
+<p>Switch to the deployment user and execute the one-click deployment script</p>
+<p><code>sh install.sh</code></p>
+</li>
+</ul>
+<pre><code>Note:
+For the first deployment, the following message appears in step 3 of `3, stop server` during operation. This message can be ignored.
+sh: bin/dolphinscheduler-daemon.sh: No such file or directory
+</code></pre>
+<ul>
+<li>After the script is completed, the following 5 services will be started. Use the <code>jps</code> command to check whether the services are started (<code>jps</code> comes with <code>java JDK</code>)</li>
+</ul>
+<pre><code class="language-aidl">    MasterServer         ----- master service
+    WorkerServer         ----- worker service
+    LoggerServer         ----- logger service
+    ApiApplicationServer ----- api service
+    AlertServer          ----- alert service
+</code></pre>
+<p>If the above services are started normally, the automatic deployment is successful.</p>
+<p>After the deployment is successful, you can view the logs. The logs are stored in the logs folder.</p>
+<pre><code class="language-log"> logs/
+    ├── dolphinscheduler-alert-server.log
+    ├── dolphinscheduler-master-server.log
+    |—— dolphinscheduler-worker-server.log
+    |—— dolphinscheduler-api-server.log
+    |—— dolphinscheduler-logger-server.log
+</code></pre>
+<h1>2. Frontend Deployment</h1>
+<p>Please download the latest version of the frontend installation package to the server deployment directory, download address: [Download] (<a href="https://dolphinscheduler.apache.org/en-us/docs/release/download.html">https://dolphinscheduler.apache.org/en-us/docs/release/download.html</a>) (Take 1.2.0 version as an example ), Upload the tar.gz package to this directory after downloading and unzip it.</p>
+<pre><code class="language-shell">cd /opt/dolphinscheduler;
+
+tar -zxvf apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin.tar.gz -C /opt/dolphinscheduler;
+
+mv apache-dolphinscheduler-incubating-1.2.0-dolphinscheduler-front-bin dolphinscheduler-ui
+</code></pre>
+<p><strong>Choose any one of the following methods, automated deployment is recommended.</strong></p>
+<h3>2.1 Automated Deployment</h3>
+<ul>
+<li>
+<p>Enter the dolphinscheduler-ui directory and execute (<code>Note: Automated deployment will automatically download nginx</code>)</p>
+<pre><code class="language-shell">cd dolphinscheduler-ui;
+sh ./install-dolphinscheduler-ui.sh;
+</code></pre>
+<ul>
+<li>After the execution, please type the frontend port during operation, the default port is 8888, if you choose the default, type 'y', or type another port.</li>
+<li>Then it will let you type the api-server ip that interacts with the frontend UI.</li>
+<li>Next is the port of the api-server that lets you type to interact with the frontend UI.</li>
+<li>Next is the operating system selection.</li>
+<li>Wait for deployment to complete.</li>
+</ul>
+</li>
+<li>
+<p>After deployment, in order to prevent too large resources from uploading to the resource center, it is recommended to modify the nginx upload size parameters, as follows:</p>
+<ul>
+<li>Add Nginx configuration client_max_body_size 1024m, you can add it in the http method body.</li>
+</ul>
+<pre><code class="language-shell">vi /etc/nginx/nginx.conf
+<span class="hljs-meta">
+#</span><span class="bash"> add param</span>
+client_max_body_size 1024m;
+</code></pre>
+<ul>
+<li>Then restart Nginx service</li>
+</ul>
+<pre><code class="language-shell">systemctl restart nginx
+</code></pre>
+</li>
+<li>
+<p>Visit the front page address: <a href="http://localhost:8888">http://localhost:8888</a>. If the front login page appears, the front web installation is complete.</p>
+<pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">align</span>=<span class="hljs-string">"center"</span>&gt;</span>
+   <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"/img/login.png"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"60%"</span> /&gt;</span>
+ <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
+</code></pre>
+</li>
+</ul>
+<h3>2.2 Manual Deployment</h3>
+<ul>
+<li>
+<p>Install nginx by yourself, download it from the official website: Or <code>yum install nginx -y</code></p>
+</li>
+<li>
+<p>Modify the nginx configuration file (Note: some place need to be modified by yourself)</p>
+</li>
+</ul>
+<pre><code class="language-html">vi /etc/nginx/nginx.conf
+
+server {
+    listen       8888; # Your Port
+    server_name  localhost;
+    #charset koi8-r;
+    #access_log  /var/log/nginx/host.access.log  main;
+    location / {
+        root   /opt/soft/dolphinscheduler-ui/dist;      # Your dist directory which you unzip
+        index  index.html index.html;
+    }
+    location /dolphinscheduler {
+        proxy_pass http://localhost:12345;    # Your ApiApplicationServer address
+        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;
+    }
+}
+</code></pre>
+<ul>
+<li>
+<p>Then restart Nginx service</p>
+<pre><code class="language-shell">systemctl restart nginx
+</code></pre>
+</li>
+<li>
+<p>Visit the front page address: <a href="http://localhost:8888">http://localhost:8888</a>. If the front login page appears, the front web installation is complete.</p>
+<pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">align</span>=<span class="hljs-string">"center"</span>&gt;</span>
+   <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"/img/login.png"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"60%"</span> /&gt;</span>
+ <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
+</code></pre>
+</li>
+</ul>
+<h1>3. Start and stop service</h1>
+<ul>
+<li>
+<p>Stop all services</p>
+<p><code>sh ./bin/stop-all.sh</code></p>
+</li>
+<li>
+<p>Start all services</p>
+<p><code>sh ./bin/start-all.sh</code></p>
+</li>
+<li>
+<p>Start and stop master service</p>
+</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start master-server
+sh ./bin/dolphinscheduler-daemon.sh stop master-server
+</code></pre>
+<ul>
+<li>Start and stop worker Service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start worker-server
+sh ./bin/dolphinscheduler-daemon.sh stop worker-server
+</code></pre>
+<ul>
+<li>Start and stop api Service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start api-server
+sh ./bin/dolphinscheduler-daemon.sh stop api-server
+</code></pre>
+<ul>
+<li>Start and stop logger Service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start logger-server
+sh ./bin/dolphinscheduler-daemon.sh stop logger-server
+</code></pre>
+<ul>
+<li>Start and stop alert service</li>
+</ul>
+<pre><code class="language-shell">sh ./bin/dolphinscheduler-daemon.sh start alert-server
+sh ./bin/dolphinscheduler-daemon.sh stop alert-server
+</code></pre>
+<p><code>Note: Please refer to the &quot;Architecture Design&quot; section for service usage</code></p>
+</div></section><footer class="footer-container"><div class="footer-body"><img src="/img/ds_gray.svg"/><div class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache DolphinScheduler (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. 
+Incubation is required of all newly accepted projects until a further review indicates 
+that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. 
+While incubation status is not necessarily a reflection of the completeness or stability of the code, 
+it does indicate that the project has yet to be fully endorsed by the ASF.</p></div><div class="col col-6"><dl><dt>Documentation</dt><dd><a href="/en-us/docs/1.2.0/user_doc/architecture-design.html" target="_self">Overview</a></dd><dd><a href="/en-us/docs/1.2.0/user_doc/quick-start.html" target="_self">Quick start</a></dd><dd><a href="/en-us/docs/1.2.0/user_doc/backend-development.html" target="_self">Developer guide</a></dd></dl></div><div class="col col-6"><dl><dt>ASF</dt><dd><a href=" [...]
+	<script src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js"></script>
+	<script src="https://f.alicdn.com/react/15.4.1/react-dom.min.js"></script>
+	<script>
+		window.rootPath = '';
+  </script>
+	<script src="/build/documentation.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/en-us/docs/1.2.0/user_doc/standalone-deployment.json b/en-us/docs/1.2.0/user_doc/standalone-deployment.json
new file mode 100644
index 0000000..e6fde99
--- /dev/null
+++ b/en-us/docs/1.2.0/user_doc/standalone-deployment.json
@@ -0,0 +1,6 @@
+{
+  "filename": "standalone-deployment.md",
+  "__html": "<h1>Standalone Deployment</h1>\n<p>DolphinScheduler Standalone deployment is divided into two parts: backend deployment and frontend deployment.</p>\n<h1>1. Backend Deployment</h1>\n<h3>1.1: Before you begin (please install requirement basic software by yourself)</h3>\n<ul>\n<li>PostgreSQL (8.2.15+) or Mysql (5.6 or 5.7): Choose One</li>\n<li><a href=\"https://www.oracle.com/technetwork/java/javase/downloads/index.html\">JDK</a> (1.8+):  Required. Double-check configure JAVA [...]
+  "link": "/en-us/docs/1.2.0/user_doc/standalone-deployment.html",
+  "meta": {}
+}
\ No newline at end of file