@ -435,7 +435,7 @@
< li > < a href = "https://blog.csdn.net/u011886447/article/details/79796802" target = "_blank" > Mysql < / a > ( 5 . 5 + ) : & # x5FC5 ; & # x88C5 ; < / li >
< li > < a href = "https://blog.csdn.net/u011886447/article/details/79796802" target = "_blank" > Mysql < / a > ( 5 . 5 + ) : & # x5FC5 ; & # x88C5 ; < / li >
< li > < a href = "https://www.oracle.com/technetwork/java/javase/downloads/index.html" target = "_blank" > JDK < / a > ( 1 . 8 + ) : & # x5FC5 ; & # x88C5 ; < / li >
< li > < a href = "https://www.oracle.com/technetwork/java/javase/downloads/index.html" target = "_blank" > JDK < / a > ( 1 . 8 + ) : & # x5FC5 ; & # x88C5 ; < / li >
< li > < a href = "https://www.jianshu.com/p/de90172ea680" target = "_blank" > ZooKeeper < / a > ( 3 . 4 . 6 ) & # xFF1A ; & # x5FC5 ; & # x88C5 ; < / li >
< li > < a href = "https://www.jianshu.com/p/de90172ea680" target = "_blank" > ZooKeeper < / a > ( 3 . 4 . 6 ) & # xFF1A ; & # x5FC5 ; & # x88C5 ; < / li >
< li > < a href = "https://blog.csdn.net/Evankaka/article/details/51612437" target = "_blank" > Hadoop < / a > ( 2 . 7 . 3 ) & # xFF1A ; & # x9009 ; & # x88C5 ; & # xFF0C ; & # x5982 ; & # x679C ; & # x9700 ; & # x8981 ; & # x4F7F ; & # x7528 ; & # x5230 ; & # x8D44 ; & # x6E90 ; & # x4E0A ; & # x4F20 ; & # x529F ; & # x80FD ; & # xFF0C ; MapReduce & # x4EFB ; & # x52A1 ; & # x63D0 ; & # x4EA4 ; & # x5219 ; & # x9700 ; & # x8981 ; & # x914D ; & # x7F6E ; Hadoop ( & # x4E0A ; & # x4F20 ; & # x7684 ; & # x8D44 ; & # x6E90 ; & # x6587 ; & # x4EF6 ; & # x76EE ; & # x524D ; & # x4FDD ; & # x5B58 ; & # x5728 ; Hdfs & # x4E0A ; ) < / li >
< li > < a href = "https://blog.csdn.net/Evankaka/article/details/51612437" target = "_blank" > Hadoop < / a > ( 2 . 6 + ) & # xFF1A ; & # x9009 ; & # x88C5 ; & # xFF0C ; & # x5982 ; & # x679C ; & # x9700 ; & # x8981 ; & # x4F7F ; & # x7528 ; & # x5230 ; & # x8D44 ; & # x6E90 ; & # x4E0A ; & # x4F20 ; & # x529F ; & # x80FD ; & # xFF0C ; MapReduce & # x4EFB ; & # x52A1 ; & # x63D0 ; & # x4EA4 ; & # x5219 ; & # x9700 ; & # x8981 ; & # x914D ; & # x7F6E ; Hadoop ( & # x4E0A ; & # x4F20 ; & # x7684 ; & # x8D44 ; & # x6E90 ; & # x6587 ; & # x4EF6 ; & # x76EE ; & # x524D ; & # x4FDD ; & # x5B58 ; & # x5728 ; Hdfs & # x4E0A ; ) < / li >
< li > < a href = "https://staroon.pro/2017/12/09/HiveInstall/" target = "_blank" > Hive < / a > ( 1 . 2 . 1 ) : & # x9009 ; & # x88C5 ; & # xFF0C ; hive & # x4EFB ; & # x52A1 ; & # x63D0 ; & # x4EA4 ; & # x9700 ; & # x8981 ; & # x5B89 ; & # x88C5 ; < / li >
< li > < a href = "https://staroon.pro/2017/12/09/HiveInstall/" target = "_blank" > Hive < / a > ( 1 . 2 . 1 ) : & # x9009 ; & # x88C5 ; & # xFF0C ; hive & # x4EFB ; & # x52A1 ; & # x63D0 ; & # x4EA4 ; & # x9700 ; & # x8981 ; & # x5B89 ; & # x88C5 ; < / li >
< li > Spark ( 1 . x , 2 . x ) : & # x9009 ; & # x88C5 ; & # xFF0C ; Spark & # x4EFB ; & # x52A1 ; & # x63D0 ; & # x4EA4 ; & # x9700 ; & # x8981 ; & # x5B89 ; & # x88C5 ; < / li >
< li > Spark ( 1 . x , 2 . x ) : & # x9009 ; & # x88C5 ; & # xFF0C ; Spark & # x4EFB ; & # x52A1 ; & # x63D0 ; & # x4EA4 ; & # x9700 ; & # x8981 ; & # x5B89 ; & # x88C5 ; < / li >
< li > PostgreSQL ( 8 . 2 . 15 + ) : & # x9009 ; & # x88C5 ; & # xFF0C ; PostgreSQL PostgreSQL & # x5B58 ; & # x50A8 ; & # x8FC7 ; & # x7A0B ; & # x9700 ; & # x8981 ; & # x5B89 ; & # x88C5 ; < / li >
< li > PostgreSQL ( 8 . 2 . 15 + ) : & # x9009 ; & # x88C5 ; & # xFF0C ; PostgreSQL PostgreSQL & # x5B58 ; & # x50A8 ; & # x8FC7 ; & # x7A0B ; & # x9700 ; & # x8981 ; & # x5B89 ; & # x88C5 ; < / li >
@ -450,13 +450,7 @@
< li > & # x67E5 ; & # x770B ; & # x76EE ; & # x5F55 ; < / li >
< li > & # x67E5 ; & # x770B ; & # x76EE ; & # x5F55 ; < / li >
< / ul >
< / ul >
< p > & # x6B63 ; & # x5E38 ; & # x7F16 ; & # x8BD1 ; & # x5B8C ; & # x540E ; & # xFF0C ; & # x4F1A ; & # x5728 ; & # x5F53 ; & # x524D ; & # x76EE ; & # x5F55 ; & # x751F ; & # x6210 ; target / escheduler - { version } / < / p >
< p > & # x6B63 ; & # x5E38 ; & # x7F16 ; & # x8BD1 ; & # x5B8C ; & # x540E ; & # xFF0C ; & # x4F1A ; & # x5728 ; & # x5F53 ; & # x524D ; & # x76EE ; & # x5F55 ; & # x751F ; & # x6210 ; target / escheduler - { version } / < / p >
< pre > < code > bin
< ul >
conf
lib
script
sql
install . sh
< / code > < / pre > < ul >
< li > & # x8BF4 ; & # x660E ; < / li >
< li > & # x8BF4 ; & # x660E ; < / li >
< / ul >
< / ul >
< pre > < code > bin : & # x57FA ; & # x7840 ; & # x670D ; & # x52A1 ; & # x542F ; & # x52A8 ; & # x811A ; & # x672C ;
< pre > < code > bin : & # x57FA ; & # x7840 ; & # x670D ; & # x52A1 ; & # x542F ; & # x52A8 ; & # x811A ; & # x672C ;
@ -483,7 +477,9 @@ mysql -h {host} -u {user} -p{password} -D {db} < escheduler.sql
mysql - h { host } - u { user } - p { password } - D { db } & lt ; quartz . sql
mysql - h { host } - u { user } - p { password } - D { db } & lt ; quartz . sql
< / code > < / pre > < h2 id = "创建部署用户" > & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / h2 >
< / code > < / pre > < h2 id = "创建部署用户" > & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / h2 >
< p > & # x56E0 ; & # x4E3A ; escheduler worker & # x90FD ; & # x662F ; & # x4EE5 ; sudo - u { linux - user } & # x65B9 ; & # x5F0F ; & # x6765 ; & # x6267 ; & # x884C ; & # x4F5C ; & # x4E1A ; & # xFF0C ; & # x6240 ; & # x4EE5 ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; & # x9700 ; & # x8981 ; & # x6709 ; sudo & # x6743 ; & # x9650 ; & # xFF0C ; & # x800C ; & # x4E14 ; & # x662F ; & # x514D ; & # x5BC6 ; & # x7684 ; & # x3002 ; < / p >
< ul >
< li > & # x5728 ; & # x6240 ; & # x6709 ; & # x9700 ; & # x8981 ; & # x90E8 ; & # x7F72 ; & # x8C03 ; & # x5EA6 ; & # x7684 ; & # x673A ; & # x5668 ; & # x4E0A ; & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; & # xFF0C ; & # x56E0 ; & # x4E3A ; worker & # x670D ; & # x52A1 ; & # x662F ; & # x4EE5 ; sudo - u { linux - user } & # x65B9 ; & # x5F0F ; & # x6765 ; & # x6267 ; & # x884C ; & # x4F5C ; & # x4E1A ; & # xFF0C ; & # x6240 ; & # x4EE5 ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; & # x9700 ; & # x8981 ; & # x6709 ; sudo & # x6743 ; & # x9650 ; & # xFF0C ; & # x800C ; & # x4E14 ; & # x662F ; & # x514D ; & # x5BC6 ; & # x7684 ; & # x3002 ; < / li >
< / ul >
< pre > < code class = "lang-部署账号" > vi / etc / sudoers
< pre > < code class = "lang-部署账号" > vi / etc / sudoers
# & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; & # x662F ; escheduler & # x8D26 ; & # x53F7 ;
# & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; & # x662F ; escheduler & # x8D26 ; & # x53F7 ;
@ -492,301 +488,65 @@ escheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL
# & # x5E76 ; & # x4E14 ; & # x9700 ; & # x8981 ; & # x6CE8 ; & # x91CA ; & # x6389 ; Default requiretty & # x4E00 ; & # x884C ;
# & # x5E76 ; & # x4E14 ; & # x9700 ; & # x8981 ; & # x6CE8 ; & # x91CA ; & # x6389 ; Default requiretty & # x4E00 ; & # x884C ;
# Default requiretty
# Default requiretty
< / code > < / pre >
< / code > < / pre >
< h2 id = "配置文件说明" > & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x8BF4 ; & # x660E ; < / h2 >
< h2 id = "ssh免密配置" > ssh & # x514D ; & # x5BC6 ; & # x914D ; & # x7F6E ; < / h2 >
< pre > < code > & # x8BF4 ; & # x660E ; & # xFF1A ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x4F4D ; & # x4E8E ; target / escheduler - { version } / conf & # x4E0B ; & # x9762 ;
< p > & # x5728 ; & # x90E8 ; & # x7F72 ; & # x673A ; & # x5668 ; & # x548C ; & # x5176 ; & # x4ED6 ; & # x5B89 ; & # x88C5 ; & # x673A ; & # x5668 ; & # x4E0A ; & # x914D ; & # x7F6E ; ssh & # x514D ; & # x5BC6 ; & # x767B ; & # x5F55 ; & # xFF0C ; & # x5982 ; & # x679C ; & # x8981 ; & # x5728 ; & # x90E8 ; & # x7F72 ; & # x673A ; & # x4E0A ; & # x5B89 ; & # x88C5 ; & # x8C03 ; & # x5EA6 ; & # xFF0C ; & # x9700 ; & # x8981 ; & # x914D ; & # x7F6E ; & # x672C ; & # x673A ; & # x514D ; & # x5BC6 ; & # x767B ; & # x5F55 ; & # x81EA ; & # x5DF1 ; < / p >
< / code > < / pre > < h3 id = "escheduler-alert" > escheduler - alert < / h3 >
< p > & # x914D ; & # x7F6E ; & # x90AE ; & # x4EF6 ; & # x544A ; & # x8B66 ; & # x4FE1 ; & # x606F ; < / p >
< ul >
< li > alert . properties < / li >
< / ul >
< pre > < code > # & # x4EE5 ; qq & # x90AE ; & # x7BB1 ; & # x4E3A ; & # x4F8B ; & # xFF0C ; & # x5982 ; & # x679C ; & # x662F ; & # x522B ; & # x7684 ; & # x90AE ; & # x7BB1 ; & # xFF0C ; & # x8BF7 ; & # x66F4 ; & # x6539 ; & # x5BF9 ; & # x5E94 ; & # x914D ; & # x7F6E ;
# alert type is EMAIL / SMS
alert . type = EMAIL
# mail server configuration
mail . protocol = SMTP
mail . server . host = smtp . exmail . qq . com
mail . server . port = 25
mail . sender = xxxxxxx @qq.com
mail . passwd = xxxxxxx
# xls file path , need manually create it before use if not exist
xls . file . path = / opt / xls
< / code > < / pre > < h3 id = "escheduler-common" > escheduler - common < / h3 >
< p > & # x901A ; & # x7528 ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x914D ; & # x7F6E ; & # xFF0C ; & # x961F ; & # x5217 ; & # x9009 ; & # x62E9 ; & # x53CA ; & # x5730 ; & # x5740 ; & # x914D ; & # x7F6E ; & # xFF0C ; & # x901A ; & # x7528 ; & # x6587 ; & # x4EF6 ; & # x76EE ; & # x5F55 ; & # x914D ; & # x7F6E ; < / p >
< ul >
< li > common / common . properties < / li >
< / ul >
< pre > < code > # task queue implementation , default & quot ; zookeeper & quot ;
escheduler . queue . impl = zookeeper
# user data directory path , self configuration , please make sure the directory exists and have read write permissions
data . basedir . path = / tmp / escheduler
# directory path for user data download . self configuration , please make sure the directory exists and have read write permissions
data . download . basedir . path = / tmp / escheduler / download
# process execute directory . self configuration , please make sure the directory exists and have read write permissions
process . exec . basepath = / tmp / escheduler / exec
# data base dir , resource file will store to this hadoop hdfs path , self configuration , please make sure the directory exists on hdfs and have read write permissions & # x3002 ; & quot ; / escheduler & quot ; is recommended
data . store2hdfs . basepath = / escheduler
# whether hdfs starts
hdfs . startup . state = true
# system env path . self configuration , please make sure the directory and file exists and have read write execute permissions
escheduler . env . path = / opt / . escheduler_env . sh
escheduler . env . py = / opt / escheduler_env . py
# resource . view . suffixs
resource . view . suffixs = txt , log , sh , conf , cfg , py , java , sql , hql , xml
# is development state ? default & quot ; false & quot ;
development . state = false
< / code > < / pre > < p > SHELL & # x4EFB ; & # x52A1 ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x914D ; & # x7F6E ; < / p >
< pre > < code > & # x8BF4 ; & # x660E ; & # xFF1A ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x4F4D ; & # x4E8E ; target / escheduler - { version } / conf / env & # x4E0B ; & # x9762 ; & # xFF0C ; & # x8FD9 ; & # x4E2A ; & # x4F1A ; & # x662F ; Worker & # x6267 ; & # x884C ; & # x4EFB ; & # x52A1 ; & # x65F6 ; & # x52A0 ; & # x8F7D ; & # x7684 ; & # x73AF ; & # x5883 ;
< / code > < / pre > < p > . escheduler_env . sh < / p >
< pre > < code > export HADOOP_HOME = / opt / soft / hadoop
export HADOOP_CONF_DIR = / opt / soft / hadoop / etc / hadoop
export SPARK_HOME1 = / opt / soft / spark1
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 PATH = $HADOOP_HOME / bin : $SPARK_HOME1 / bin : $SPARK_HOME2 / bin : $PYTHON_HOME / bin : $JAVA_HOME / bin : $HIVE_HOME / bin : $PATH
< / code > < / pre > < p > & # x200B ; < / p >
< p > Python & # x4EFB ; & # x52A1 ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x914D ; & # x7F6E ; < / p >
< pre > < code > & # x8BF4 ; & # x660E ; & # xFF1A ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x4F4D ; & # x4E8E ; target / escheduler - { version } / conf / env & # x4E0B ; & # x9762 ;
< / code > < / pre > < p > escheduler_env . py < / p >
< pre > < code > import os
HADOOP_HOME = & quot ; / opt / soft / hadoop & quot ;
SPARK_HOME1 = & quot ; / opt / soft / spark1 & quot ;
SPARK_HOME2 = & quot ; / opt / soft / spark2 & quot ;
PYTHON_HOME = & quot ; / opt / soft / python & quot ;
JAVA_HOME = & quot ; / opt / soft / java & quot ;
HIVE_HOME = & quot ; / opt / soft / hive & quot ;
PATH = os . environ [ & apos ; PATH & apos ; ]
PATH = & quot ; % s / bin : % s / bin : % s / bin : % s / bin : % s / bin : % s / bin : % s & quot ; % ( HIVE_HOME , HADOOP_HOME , SPARK_HOME1 , SPARK_HOME2 , JAVA_HOME , PYTHON_HOME , PATH )
os . putenv ( & apos ; PATH & apos ; , & apos ; % s & apos ; % PATH )
< / code > < / pre > < p > hadoop & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / p >
< ul >
< li > common / hadoop / hadoop . properties < / li >
< / ul >
< pre > < code > # ha or single namenode , If namenode ha needs to copy core - site . xml and hdfs - site . xml to the conf directory
fs . defaultFS = hdfs : //mycluster:8020
# resourcemanager ha note this need ips , this empty if single
yarn . resourcemanager . ha . rm . ids = 192 . 168 . xx . xx , 192 . 168 . xx . xx
# If it is a single resourcemanager , you only need to configure one host name . If it is resourcemanager HA , the default configuration is fine
yarn . application . status . address = http : //ark1:8088/ws/v1/cluster/apps/%s
< / code > < / pre > < p > & # x5B9A ; & # x65F6 ; & # x5668 ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / p >
< ul >
< li > quartz . properties < / li >
< / ul >
< pre > < code > # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configure Main Scheduler Properties
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
org . quartz . scheduler . instanceName = EasyScheduler
org . quartz . scheduler . instanceId = AUTO
org . quartz . scheduler . makeSchedulerThreadDaemon = true
org . quartz . jobStore . useProperties = false
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configure ThreadPool
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
org . quartz . threadPool . class = org . quartz . simpl . SimpleThreadPool
org . quartz . threadPool . makeThreadsDaemons = true
org . quartz . threadPool . threadCount = 25
org . quartz . threadPool . threadPriority = 5
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configure JobStore
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
org . quartz . jobStore . class = org . quartz . impl . jdbcjobstore . JobStoreTX
org . quartz . jobStore . driverDelegateClass = org . quartz . impl . jdbcjobstore . StdJDBCDelegate
org . quartz . jobStore . tablePrefix = QRTZ_
org . quartz . jobStore . isClustered = true
org . quartz . jobStore . misfireThreshold = 60000
org . quartz . jobStore . clusterCheckinInterval = 5000
org . quartz . jobStore . dataSource = myDs
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configure Datasources
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
org . quartz . dataSource . myDs . driver = com . mysql . jdbc . Driver
org . quartz . dataSource . myDs . URL = jdbc : mysql : //192.168.xx.xx:3306/escheduler?characterEncoding=utf8&useSSL=false
org . quartz . dataSource . myDs . user = xx
org . quartz . dataSource . myDs . password = xx
org . quartz . dataSource . myDs . maxConnections = 10
org . quartz . dataSource . myDs . validationQuery = select 1
< / code > < / pre > < p > zookeeper & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / p >
< ul >
< ul >
< li > zookeeper . properties < / li >
< li > < a href = "http://geek.analysys.cn/topic/113" target = "_blank" > & # x5C06 ; < strong > & # x4E3B ; & # x673A ; & # x5668 ; < / strong > & # x548C ; & # x5404 ; & # x4E2A ; & # x5176 ; & # x5B83 ; & # x673A ; & # x5668 ; SSH & # x6253 ; & # x901A ; < / a > < / li >
< / ul >
< / ul >
< pre > < code > # zookeeper cluster
< h2 id = "部署" > & # x90E8 ; & # x7F72 ; < / h2 >
zookeeper . quorum = 192 . 168 . xx . xx : 2181 , 192 . 168 . xx . xx : 2181 , 192 . 168 . xx . xx : 2181
< h3 id = "1-修改安装目录权限" > 1 . & # x4FEE ; & # x6539 ; & # x5B89 ; & # x88C5 ; & # x76EE ; & # x5F55 ; & # x6743 ; & # x9650 ; < / h3 >
# escheduler root directory
zookeeper . escheduler . root = / escheduler
# zookeeper server dirctory
zookeeper . escheduler . dead . servers = / escheduler / dead - servers
zookeeper . escheduler . masters = / escheduler / masters
zookeeper . escheduler . workers = / escheduler / workers
# zookeeper lock dirctory
zookeeper . escheduler . lock . masters = / escheduler / lock / masters
zookeeper . escheduler . lock . workers = / escheduler / lock / workers
# escheduler failover directory
zookeeper . escheduler . lock . masters . failover = / escheduler / lock / failover / masters
zookeeper . escheduler . lock . workers . failover = / escheduler / lock / failover / workers
# escheduler failover directory
zookeeper . session . timeout = 300
zookeeper . connection . timeout = 300
zookeeper . retry . sleep = 1000
zookeeper . retry . maxtime = 5
< / code > < / pre > < h3 id = "escheduler-dao" > escheduler - dao < / h3 >
< p > dao & # x6570 ; & # x636E ; & # x6E90 ; & # x914D ; & # x7F6E ; < / p >
< ul >
< ul >
< li > dao / data_source . properties < / li >
< li > & # x5B89 ; & # x88C5 ; & # x76EE ; & # x5F55 ; & # x5982 ; & # x4E0B ; & # xFF1A ; < / li >
< / ul >
< / ul >
< pre > < code > # base spring data source configuration
< pre > < code > bin
spring . datasource . type = com . alibaba . druid . pool . DruidDataSource
conf
spring . datasource . driver - class - name = com . mysql . jdbc . Driver
install . sh
spring . datasource . url = jdbc : mysql : //192.168.xx.xx:3306/escheduler?characterEncoding=UTF-8
lib
spring . datasource . username = xx
script
spring . datasource . password = xx
sql
< / code > < / pre > < ul >
# connection configuration
< li > < p > & # x4FEE ; & # x6539 ; & # x6743 ; & # x9650 ; ( deployUser & # x4FEE ; & # x6539 ; & # x4E3A ; & # x5BF9 ; & # x5E94 ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; ) < / p >
spring . datasource . initialSize = 5
< p > < code > sudo chown - R deployUser : deployUser * < / code > < / p >
# min connection number
< / li >
spring . datasource . minIdle = 5
# max connection number
spring . datasource . maxActive = 50
# max wait time for get a connection in milliseconds . if configuring maxWait , fair locks are enabled by default and concurrency efficiency decreases .
# If necessary , unfair locks can be used by configuring the useUnfairLock attribute to true .
spring . datasource . maxWait = 60000
# milliseconds for check to close free connections
spring . datasource . timeBetweenEvictionRunsMillis = 60000
# the Destroy thread detects the connection interval and closes the physical connection in milliseconds if the connection idle time is greater than or equal to minEvictableIdleTimeMillis .
spring . datasource . timeBetweenConnectErrorMillis = 60000
# the longest time a connection remains idle without being evicted , in milliseconds
spring . datasource . minEvictableIdleTimeMillis = 300000
# the SQL used to check whether the connection is valid requires a query statement . If validation Query is null , testOnBorrow , testOnReturn , and testWhileIdle will not work .
spring . datasource . validationQuery = SELECT 1
# check whether the connection is valid for timeout , in seconds
spring . datasource . validationQueryTimeout = 3
# when applying for a connection , if it is detected that the connection is idle longer than time Between Eviction Runs Millis ,
# validation Query is performed to check whether the connection is valid
spring . datasource . testWhileIdle = true
# execute validation to check if the connection is valid when applying for a connection
spring . datasource . testOnBorrow = true
# execute validation to check if the connection is valid when the connection is returned
spring . datasource . testOnReturn = false
spring . datasource . defaultAutoCommit = true
spring . datasource . keepAlive = true
# open PSCache , specify count PSCache for every connection
spring . datasource . poolPreparedStatements = true
spring . datasource . maxPoolPreparedStatementPerConnectionSize = 20
< / code > < / pre > < h3 id = "escheduler-server" > escheduler - server < / h3 >
< p > master & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / p >
< ul >
< li > master . properties < / li >
< / ul >
< / ul >
< pre > < code > # master execute thread num
< h3 id = "2-修改环境变量文件" > 2 . & # x4FEE ; & # x6539 ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x6587 ; & # x4EF6 ; < / h3 >
master . exec . threads = 100
# master execute task number in parallel
master . exec . task . number = 20
# master heartbeat interval
master . heartbeat . interval = 10
# master commit task retry times
master . task . commit . retryTimes = 5
# master commit task interval
master . task . commit . interval = 100
# only less than cpu avg load , master server can work . default value : the number of cpu cores * 2
master . max . cpuload . avg = 10
# only larger than reserved memory , master server can work . default value : physical memory * 1 / 10 , unit is G .
master . reserved . memory = 1
< / code > < / pre > < p > worker & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / p >
< ul >
< ul >
< li > worker . properties < / li >
< li > & # x6839 ; & # x636E ; & # x4E1A ; & # x52A1 ; & # x9700 ; & # x6C42 ; & # xFF0C ; & # x4FEE ; & # x6539 ; conf / env / & # x76EE ; & # x5F55 ; & # x4E0B ; & # x7684 ; < strong > escheduler_env . py < / strong > & # xFF0C ; < strong > . escheduler_env . sh < / strong > & # x4E24 ; & # x4E2A ; & # x6587 ; & # x4EF6 ; & # x4E2D ; & # x7684 ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; < / li >
< / ul >
< / ul >
< pre > < code > # worker execute thread num
< h3 id = "3-修改部署参数" > 3 . & # x4FEE ; & # x6539 ; & # x90E8 ; & # x7F72 ; & # x53C2 ; & # x6570 ; < / h3 >
worker . exec . threads = 100
# worker heartbeat interval
worker . heartbeat . interval = 10
# submit the number of tasks at a time
worker . fetch . task . num = 10
# only less than cpu avg load , worker server can work . default value : the number of cpu cores * 2
worker . max . cpuload . avg = 10
# only larger than reserved memory , worker server can work . default value : physical memory * 1 / 6 , unit is G .
worker . reserved . memory = 1
< / code > < / pre > < h3 id = "escheduler-api" > escheduler - api < / h3 >
< p > web & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / p >
< ul >
< ul >
< li > application . properties < / li >
< li > < p > & # x4FEE ; & # x6539 ; < strong > install . sh < / strong > & # x4E2D ; & # x7684 ; & # x53C2 ; & # x6570 ; & # xFF0C ; & # x66FF ; & # x6362 ; & # x6210 ; & # x81EA ; & # x8EAB ; & # x4E1A ; & # x52A1 ; & # x6240 ; & # x9700 ; & # x7684 ; & # x503C ; < / p >
< / li >
< li > < p > & # x5982 ; & # x679C ; & # x4F7F ; & # x7528 ; hdfs & # x76F8 ; & # x5173 ; & # x529F ; & # x80FD ; & # xFF0C ; & # x9700 ; & # x8981 ; & # x62F7 ; & # x8D1D ; < strong > hdfs - site . xml < / strong > & # x548C ; < strong > core - site . xml < / strong > & # x5230 ; conf & # x76EE ; & # x5F55 ; & # x4E0B ; < / p >
< / li >
< / ul >
< / ul >
< pre > < code > # server port
< h3 id = "4-一键部署" > 4 . & # x4E00 ; & # x952E ; & # x90E8 ; & # x7F72 ; < / h3 >
server . port = 12345
# session config
server . session . timeout = 7200
server . context - path = / escheduler /
# file size limit for upload
spring . http . multipart . max - file - size = 1024MB
spring . http . multipart . max - request - size = 1024MB
# post content
server . max - http - post - size = 5000000
< / code > < / pre > < h2 id = "伪分布式部署" > & # x4F2A ; & # x5206 ; & # x5E03 ; & # x5F0F ; & # x90E8 ; & # x7F72 ; < / h2 >
< h3 id = "1,创建部署用户" > 1 & # xFF0C ; & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / h3 >
< p > & # x200B ; & # x5982 ; & # x4E0A ; < strong > & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / strong > < / p >
< h3 id = "2,根据实际需求来创建hdfs根路径" > 2 & # xFF0C ; & # x6839 ; & # x636E ; & # x5B9E ; & # x9645 ; & # x9700 ; & # x6C42 ; & # x6765 ; & # x521B ; & # x5EFA ; HDFS & # x6839 ; & # x8DEF ; & # x5F84 ; < / h3 >
< p > & # x200B ; & # x6839 ; & # x636E ; < strong > common / common . properties < / strong > & # x4E2D ; < strong > hdfs . startup . state < / strong > & # x7684 ; & # x914D ; & # x7F6E ; & # x6765 ; & # x5224 ; & # x65AD ; & # x662F ; & # x5426 ; & # x542F ; & # x52A8 ; HDFS & # xFF0C ; & # x5982 ; & # x679C ; & # x542F ; & # x52A8 ; & # xFF0C ; & # x5219 ; & # x9700 ; & # x8981 ; & # x521B ; & # x5EFA ; HDFS & # x6839 ; & # x8DEF ; & # x5F84 ; & # xFF0C ; & # x5E76 ; & # x5C06 ; < strong > owner < / strong > & # x4FEE ; & # x6539 ; & # x4E3A ; < strong > & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / strong > & # xFF0C ; & # x5426 ; & # x5219 ; & # x5FFD ; & # x7565 ; & # x6B64 ; & # x6B65 ; & # x9AA4 ; < / p >
< h3 id = "3,项目编译" > 3 & # xFF0C ; & # x9879 ; & # x76EE ; & # x7F16 ; & # x8BD1 ; < / h3 >
< p > & # x200B ; & # x5982 ; & # x4E0A ; & # x8FDB ; & # x884C ; < strong > & # x9879 ; & # x76EE ; & # x7F16 ; & # x8BD1 ; < / strong > < / p >
< h3 id = "4,修改配置文件" > 4 & # xFF0C ; & # x4FEE ; & # x6539 ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; < / h3 >
< p > & # x200B ; & # x6839 ; & # x636E ; < strong > & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x8BF4 ; & # x660E ; < / strong > & # x4FEE ; & # x6539 ; & # x914D ; & # x7F6E ; & # x6587 ; & # x4EF6 ; & # x548C ; < strong > & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; < / strong > & # x6587 ; & # x4EF6 ; < / p >
< h3 id = "5,创建目录并将环境变量文件复制到指定目录" > 5 & # xFF0C ; & # x521B ; & # x5EFA ; & # x76EE ; & # x5F55 ; & # x5E76 ; & # x5C06 ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x6587 ; & # x4EF6 ; & # x590D ; & # x5236 ; & # x5230 ; & # x6307 ; & # x5B9A ; & # x76EE ; & # x5F55 ; < / h3 >
< ul >
< ul >
< li > < p > & # x521B ; & # x5EFA ; < strong > common / common . properties < / strong > & # x4E0B ; & # x7684 ; data . basedir . path & # x3001 ; data . download . basedir . path & # x548C ; process . exec . basepath & # x8DEF ; & # x5F84 ; < / p >
< li > < p > & # x5B89 ; & # x88C5 ; zookeeper & # x5DE5 ; & # x5177 ; < / p >
< p > < code > pip install kazoo < / code > < / p >
< / li >
< li > < p > & # x5207 ; & # x6362 ; & # x5230 ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; & # xFF0C ; & # x4E00 ; & # x952E ; & # x90E8 ; & # x7F72 ; < / p >
< p > < code > sh install . sh < / code > < / p >
< / li >
< / li >
< li > < p > & # x5C06 ; < strong > . escheduler_env . sh < / strong > & # x548C ; < strong > escheduler_env . py < / strong > & # x4E24 ; & # x4E2A ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x6587 ; & # x4EF6 ; & # x590D ; & # x5236 ; & # x5230 ; < strong > common / common . properties < / strong > & # x914D ; & # x7F6E ; & # x7684 ; < strong > escheduler . env . path < / strong > & # x548C ; < strong > escheduler . env . py < / strong > & # x7684 ; & # x76EE ; & # x5F55 ; & # x4E0B ; & # xFF0C ; & # x5E76 ; & # x5C06 ; < strong > owner < / strong > & # x4FEE ; & # x6539 ; & # x4E3A ; < strong > & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / strong > < / p >
< li > < p > jps & # x67E5 ; & # x770B ; & # x670D ; & # x52A1 ; & # x662F ; & # x5426 ; & # x542F ; & # x52A8 ; < / p >
< / li >
< / li >
< / ul >
< / ul >
< h3 id = "6,启停服务" > 6 & # xFF0C ; & # x542F ; & # x505C ; & # x670D ; & # x52A1 ; < / h3 >
< pre > < code class = "lang-aidl" > MasterServer - - - - - master & # x670D ; & # x52A1 ;
WorkerServer - - - - - worker & # x670D ; & # x52A1 ;
LoggerServer - - - - - logger & # x670D ; & # x52A1 ;
ApiApplicationServer - - - - - api & # x670D ; & # x52A1 ;
AlertServer - - - - - alert & # x670D ; & # x52A1 ;
< / code > < / pre >
< h2 id = "日志查看" > & # x65E5 ; & # x5FD7 ; & # x67E5 ; & # x770B ; < / h2 >
< p > & # x65E5 ; & # x5FD7 ; & # x7EDF ; & # x4E00 ; & # x5B58 ; & # x653E ; & # x4E8E ; & # x6307 ; & # x5B9A ; & # x6587 ; & # x4EF6 ; & # x5939 ; & # x5185 ; < / p >
< pre > < code class = "lang-日志路径" > logs /
& # x251C ; & # x2500 ; & # x2500 ; escheduler - alert - server . log
& # x251C ; & # x2500 ; & # x2500 ; escheduler - master - server . log
| & # x2014 ; & # x2014 ; escheduler - worker - server . log
| & # x2014 ; & # x2014 ; escheduler - api - server . log
| & # x2014 ; & # x2014 ; escheduler - logger - server . log
< / code > < / pre >
< h2 id = "启停服务" > & # x542F ; & # x505C ; & # x670D ; & # x52A1 ; < / h2 >
< ul >
< ul >
< li > & # x542F ; & # x505C ; Master < / li >
< li > & # x542F ; & # x505C ; Master < / li >
< / ul >
< / ul >
@ -813,55 +573,8 @@ sh ./bin/escheduler-daemon.sh stop logger-server
< / ul >
< / ul >
< pre > < code > sh . / bin / escheduler - daemon . sh start alert - server
< pre > < code > sh . / bin / escheduler - daemon . sh start alert - server
sh . / bin / escheduler - daemon . sh stop alert - server
sh . / bin / escheduler - daemon . sh stop alert - server
< / code > < / pre > < h2 id = "分布式部署" > & # x5206 ; & # x5E03 ; & # x5F0F ; & # x90E8 ; & # x7F72 ; < / h2 >
< h3 id = "1,创建部署用户" > 1 & # xFF0C ; & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / h3 >
< ul >
< li > & # x5728 ; & # x9700 ; & # x8981 ; & # x90E8 ; & # x7F72 ; & # x8C03 ; & # x5EA6 ; & # x7684 ; & # x673A ; & # x5668 ; & # x4E0A ; & # x5982 ; & # x4E0A ; < strong > & # x521B ; & # x5EFA ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / strong > < / li >
< li > < a href = "https://blog.csdn.net/thinkmore1314/article/details/22489203" target = "_blank" > & # x5C06 ; < strong > & # x4E3B ; & # x673A ; & # x5668 ; < / strong > & # x548C ; & # x5404 ; & # x4E2A ; & # x5176 ; & # x5B83 ; & # x673A ; & # x5668 ; SSH & # x6253 ; & # x901A ; < / a > < / li >
< / ul >
< h3 id = "2,根据实际需求来创建hdfs根路径" > 2 & # xFF0C ; & # x6839 ; & # x636E ; & # x5B9E ; & # x9645 ; & # x9700 ; & # x6C42 ; & # x6765 ; & # x521B ; & # x5EFA ; HDFS & # x6839 ; & # x8DEF ; & # x5F84 ; < / h3 >
< p > & # x200B ; & # x6839 ; & # x636E ; < strong > common / common . properties < / strong > & # x4E2D ; < strong > hdfs . startup . state < / strong > & # x7684 ; & # x914D ; & # x7F6E ; & # x6765 ; & # x5224 ; & # x65AD ; & # x662F ; & # x5426 ; & # x542F ; & # x52A8 ; HDFS & # xFF0C ; & # x5982 ; & # x679C ; & # x542F ; & # x52A8 ; & # xFF0C ; & # x5219 ; & # x9700 ; & # x8981 ; & # x521B ; & # x5EFA ; HDFS & # x6839 ; & # x8DEF ; & # x5F84 ; & # xFF0C ; & # x5E76 ; & # x5C06 ; < strong > owner < / strong > & # x4FEE ; & # x6539 ; & # x4E3A ; < strong > & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / strong > & # xFF0C ; & # x5426 ; & # x5219 ; & # x5FFD ; & # x7565 ; & # x6B64 ; & # x6B65 ; & # x9AA4 ; < / p >
< h3 id = "3,项目编译" > 3 & # xFF0C ; & # x9879 ; & # x76EE ; & # x7F16 ; & # x8BD1 ; < / h3 >
< p > & # x200B ; & # x5982 ; & # x4E0A ; & # x8FDB ; & # x884C ; < strong > & # x9879 ; & # x76EE ; & # x7F16 ; & # x8BD1 ; < / strong > < / p >
< h3 id = "4,将环境变量文件复制到指定目录" > 4 & # xFF0C ; & # x5C06 ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x6587 ; & # x4EF6 ; & # x590D ; & # x5236 ; & # x5230 ; & # x6307 ; & # x5B9A ; & # x76EE ; & # x5F55 ; < / h3 >
< p > & # x200B ; & # x5C06 ; < strong > . escheduler_env . sh < / strong > & # x548C ; < strong > escheduler_env . py < / strong > & # x4E24 ; & # x4E2A ; & # x73AF ; & # x5883 ; & # x53D8 ; & # x91CF ; & # x6587 ; & # x4EF6 ; & # x590D ; & # x5236 ; & # x5230 ; < strong > common / common . properties < / strong > & # x914D ; & # x7F6E ; & # x7684 ; < strong > escheduler . env . path < / strong > & # x548C ; < strong > escheduler . env . py < / strong > & # x7684 ; & # x76EE ; & # x5F55 ; & # x4E0B ; & # xFF0C ; & # x5E76 ; & # x5C06 ; < strong > owner < / strong > & # x4FEE ; & # x6539 ; & # x4E3A ; < strong > & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; < / strong > < / p >
< h3 id = "5,修改-installsh" > 5 & # xFF0C ; & # x4FEE ; & # x6539 ; install . sh < / h3 >
< p > & # x200B ; & # x4FEE ; & # x6539 ; install . sh & # x4E2D ; & # x53D8 ; & # x91CF ; & # x7684 ; & # x503C ; & # xFF0C ; & # x66FF ; & # x6362 ; & # x6210 ; & # x81EA ; & # x8EAB ; & # x4E1A ; & # x52A1 ; & # x6240 ; & # x9700 ; & # x7684 ; & # x503C ; < / p >
< h3 id = "6,一键部署" > 6 & # xFF0C ; & # x4E00 ; & # x952E ; & # x90E8 ; & # x7F72 ; < / h3 >
< ul >
< li > & # x5B89 ; & # x88C5 ; pip install kazoo < / li >
< li > & # x5B89 ; & # x88C5 ; & # x76EE ; & # x5F55 ; & # x5982 ; & # x4E0B ; & # xFF1A ; < / li >
< / ul >
< pre > < code > bin
conf
escheduler - 1 . 0 . 0 - SNAPSHOT . tar . gz
install . sh
lib
monitor_server . py
script
sql
< / code > < / pre > < ul >
< li > < p > & # x4F7F ; & # x7528 ; & # x90E8 ; & # x7F72 ; & # x7528 ; & # x6237 ; sh install . sh & # x4E00 ; & # x952E ; & # x90E8 ; & # x7F72 ; < / p >
< ul >
< li > & # x6CE8 ; & # x610F ; & # xFF1A ; scp_hosts . sh & # x91CC ; < code > tar - zxvf $workDir / . . / escheduler - 1 . 0 . 0 . tar . gz - C $installPath < / code > & # x4E2D ; & # x7684 ; & # x7248 ; & # x672C ; & # x53F7 ; ( 1 . 0 . 0 ) & # x9700 ; & # x8981 ; & # x6267 ; & # x884C ; & # x524D ; & # x624B ; & # x52A8 ; & # x66FF ; & # x6362 ; & # x6210 ; & # x5BF9 ; & # x5E94 ; & # x7684 ; & # x7248 ; & # x672C ; & # x53F7 ; < / li >
< / ul >
< / li >
< / ul >
< h2 id = "服务监控" > & # x670D ; & # x52A1 ; & # x76D1 ; & # x63A7 ; < / h2 >
< p > monitor_server . py & # x811A ; & # x672C ; & # x662F ; & # x76D1 ; & # x542C ; & # xFF0C ; master & # x548C ; worker & # x670D ; & # x52A1 ; & # x6302 ; & # x6389 ; & # x91CD ; & # x542F ; & # x7684 ; & # x811A ; & # x672C ; < / p >
< p > & # x6CE8 ; & # x610F ; & # xFF1A ; & # x5728 ; & # x5168 ; & # x90E8 ; & # x670D ; & # x52A1 ; & # x90FD ; & # x542F ; & # x52A8 ; & # x4E4B ; & # x540E ; & # x542F ; & # x52A8 ; < / p >
< p > nohup python - u monitor_server . py & gt ; nohup . out 2 & gt ; & amp ; 1 & amp ; < / p >
< h2 id = "日志查看" > & # x65E5 ; & # x5FD7 ; & # x67E5 ; & # x770B ; < / h2 >
< p > & # x65E5 ; & # x5FD7 ; & # x7EDF ; & # x4E00 ; & # x5B58 ; & # x653E ; & # x4E8E ; & # x6307 ; & # x5B9A ; & # x6587 ; & # x4EF6 ; & # x5939 ; & # x5185 ; < / p >
< pre > < code class = "lang-日志路径" > logs /
& # x251C ; & # x2500 ; & # x2500 ; escheduler - alert - server . log
& # x251C ; & # x2500 ; & # x2500 ; escheduler - master - server . log
| & # x2014 ; & # x2014 ; escheduler - worker - server . log
| & # x2014 ; & # x2014 ; escheduler - api - server . log
| & # x2014 ; & # x2014 ; escheduler - logger - server . log
< / code > < / pre >
< / code > < / pre >
< / section >
< / section >
< / div >
< / div >
@ -899,7 +612,7 @@ sh ./bin/escheduler-daemon.sh stop alert-server
< script >
< script >
var gitbook = gitbook | | [ ] ;
var gitbook = gitbook | | [ ] ;
gitbook . push ( function ( ) {
gitbook . push ( function ( ) {
gitbook . page . hasChanged ( { "page" : { "title" : "后端部署文档" , "level" : "1.3.1" , "depth" : 2 , "next" : { "title" : "系统使用手册" , "level" : "1.4" , "depth" : 1 , "anchor" : "#使用手册" , "path" : "系统使用手册.md" , "ref" : "系统使用手册.md#使用手册" , "articles" : [ ] } , "previous" : { "title" : "后端部署文档" , "level" : "1.3" , "depth" : 1 , "ref" : "" , "articles" : [ { "title" : "后端部署文档" , "level" : "1.3.1" , "depth" : 2 , "anchor" : "#部署文档" , "path" : "后端部署文档.md" , "ref" : "后端部署文档.md#部署文档" , "articles" : [ ] } ] } , "dir" : "ltr" } , "config" : { "plugins" : [ "expandable-chapters" , "insert-logo-link" , "livereload" ] , "styles" : { "website" : "./styles/website.css" } , "pluginsConfig" : { "livereload" : { } , "insert-logo-link" : { "src" : "http://geek.analysys.cn/static/upload/236/2019-03-29/379450b4-7919-4707-877c-4d33300377d4.png" , "url" : "https://github.com/analysys/EasyScheduler" } , "search" : { } , "lunr" : { "maxIndexSize" : 1000000 , "ignoreSpecialCharacters" : false } , "fontsettings" : { "theme" : "white" , "family" : "sans" , "size" : 2 } , "highlight" : { } , "sharing" : { "facebook" : true , "twitter" : true , "google" : false , "weibo" : false , "instapaper" : false , "vk" : false , "all" : [ "facebook" , "google" , "twitter" , "weibo" , "instapaper" ] } , "theme-default" : { "styles" : { "website" : "styles/website.css" , "pdf" : "styles/pdf.css" , "epub" : "styles/epub.css" , "mobi" : "styles/mobi.css" , "ebook" : "styles/ebook.css" , "print" : "styles/print.css" } , "showLevel" : false } , "expandable-chapters" : { } } , "theme" : "default" , "author" : "YIGUAN" , "pdf" : { "pageNumbers" : true , "fontSize" : 12 , "fontFamily" : "Arial" , "paperSize" : "a4" , "chapterMark" : "pagebreak" , "pageBreaksBefore" : "/" , "margin" : { "right" : 62 , "left" : 62 , "top" : 56 , "bottom" : 56 } } , "structure" : { "langs" : "LANGS.md" , "readme" : "README.md" , "glossary" : "GLOSSARY.md" , "summary" : "SUMMARY.md" } , "variables" : { } , "title" : "调度系统-EasyScheduler" , "language" : "zh-hans" , "gitbook" : "3.2.3" , "description" : "调度系统" } , "file" : { "path" : "后端部署文档.md" , "mtime" : "2019-04-08T08:09:31.074 Z" , "type" : "markdown" } , "gitbook" : { "version" : "3.2.3" , "time" : "2019-04-10T07:14:01.407Z" } , "basePath" : "." , "book" : { "language" : "" } } ) ;
gitbook . page . hasChanged ( { "page" : { "title" : "后端部署文档" , "level" : "1.3.1" , "depth" : 2 , "next" : { "title" : "系统使用手册" , "level" : "1.4" , "depth" : 1 , "anchor" : "#使用手册" , "path" : "系统使用手册.md" , "ref" : "系统使用手册.md#使用手册" , "articles" : [ ] } , "previous" : { "title" : "后端部署文档" , "level" : "1.3" , "depth" : 1 , "ref" : "" , "articles" : [ { "title" : "后端部署文档" , "level" : "1.3.1" , "depth" : 2 , "anchor" : "#部署文档" , "path" : "后端部署文档.md" , "ref" : "后端部署文档.md#部署文档" , "articles" : [ ] } ] } , "dir" : "ltr" } , "config" : { "plugins" : [ "expandable-chapters" , "insert-logo-link" , "livereload" ] , "styles" : { "website" : "./styles/website.css" } , "pluginsConfig" : { "livereload" : { } , "insert-logo-link" : { "src" : "http://geek.analysys.cn/static/upload/236/2019-03-29/379450b4-7919-4707-877c-4d33300377d4.png" , "url" : "https://github.com/analysys/EasyScheduler" } , "search" : { } , "lunr" : { "maxIndexSize" : 1000000 , "ignoreSpecialCharacters" : false } , "fontsettings" : { "theme" : "white" , "family" : "sans" , "size" : 2 } , "highlight" : { } , "sharing" : { "facebook" : true , "twitter" : true , "google" : false , "weibo" : false , "instapaper" : false , "vk" : false , "all" : [ "facebook" , "google" , "twitter" , "weibo" , "instapaper" ] } , "theme-default" : { "styles" : { "website" : "styles/website.css" , "pdf" : "styles/pdf.css" , "epub" : "styles/epub.css" , "mobi" : "styles/mobi.css" , "ebook" : "styles/ebook.css" , "print" : "styles/print.css" } , "showLevel" : false } , "expandable-chapters" : { } } , "theme" : "default" , "author" : "YIGUAN" , "pdf" : { "pageNumbers" : true , "fontSize" : 12 , "fontFamily" : "Arial" , "paperSize" : "a4" , "chapterMark" : "pagebreak" , "pageBreaksBefore" : "/" , "margin" : { "right" : 62 , "left" : 62 , "top" : 56 , "bottom" : 56 } } , "structure" : { "langs" : "LANGS.md" , "readme" : "README.md" , "glossary" : "GLOSSARY.md" , "summary" : "SUMMARY.md" } , "variables" : { } , "title" : "调度系统-EasyScheduler" , "language" : "zh-hans" , "gitbook" : "3.2.3" , "description" : "调度系统" } , "file" : { "path" : "后端部署文档.md" , "mtime" : "2019-04-12T03:01:32.518 Z" , "type" : "markdown" } , "gitbook" : { "version" : "3.2.3" , "time" : "2019-04-10T07:14:01.407Z" } , "basePath" : "." , "book" : { "language" : "" } } ) ;
} ) ;
} ) ;
< / script >
< / script >
< / div >
< / div >