oceanos
5 years ago
40 changed files with 3505 additions and 47 deletions
@ -0,0 +1,164 @@
|
||||
{ |
||||
"DOLPHIN": { |
||||
"service": [], |
||||
"DOLPHIN_API": [ |
||||
{ |
||||
"name": "dolphin_api_port_check", |
||||
"label": "dolphin_api_port_check", |
||||
"description": "dolphin_api_port_check.", |
||||
"interval": 10, |
||||
"scope": "ANY", |
||||
"source": { |
||||
"type": "PORT", |
||||
"uri": "{{dolphin-application-api/server.port}}", |
||||
"default_port": 12345, |
||||
"reporting": { |
||||
"ok": { |
||||
"text": "TCP OK - {0:.3f}s response on port {1}" |
||||
}, |
||||
"warning": { |
||||
"text": "TCP OK - {0:.3f}s response on port {1}", |
||||
"value": 1.5 |
||||
}, |
||||
"critical": { |
||||
"text": "Connection failed: {0} to {1}:{2}", |
||||
"value": 5.0 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
], |
||||
"DOLPHIN_MASTER": [ |
||||
{ |
||||
"name": "DOLPHIN_MASTER_CHECK", |
||||
"label": "check dolphin scheduler master status", |
||||
"description": "", |
||||
"interval":10, |
||||
"scope": "HOST", |
||||
"enabled": true, |
||||
"source": { |
||||
"type": "SCRIPT", |
||||
"path": "DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py", |
||||
"parameters": [ |
||||
|
||||
{ |
||||
"name": "connection.timeout", |
||||
"display_name": "Connection Timeout", |
||||
"value": 5.0, |
||||
"type": "NUMERIC", |
||||
"description": "The maximum time before this alert is considered to be CRITICAL", |
||||
"units": "seconds", |
||||
"threshold": "CRITICAL" |
||||
}, |
||||
{ |
||||
"name": "alertName", |
||||
"display_name": "alertName", |
||||
"value": "DOLPHIN_MASTER", |
||||
"type": "STRING", |
||||
"description": "alert name" |
||||
} |
||||
] |
||||
} |
||||
} |
||||
], |
||||
"DOLPHIN_WORKER": [ |
||||
{ |
||||
"name": "DOLPHIN_WORKER_CHECK", |
||||
"label": "check dolphin scheduler worker status", |
||||
"description": "", |
||||
"interval":10, |
||||
"scope": "HOST", |
||||
"enabled": true, |
||||
"source": { |
||||
"type": "SCRIPT", |
||||
"path": "DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py", |
||||
"parameters": [ |
||||
|
||||
{ |
||||
"name": "connection.timeout", |
||||
"display_name": "Connection Timeout", |
||||
"value": 5.0, |
||||
"type": "NUMERIC", |
||||
"description": "The maximum time before this alert is considered to be CRITICAL", |
||||
"units": "seconds", |
||||
"threshold": "CRITICAL" |
||||
}, |
||||
{ |
||||
"name": "alertName", |
||||
"display_name": "alertName", |
||||
"value": "DOLPHIN_WORKER", |
||||
"type": "STRING", |
||||
"description": "alert name" |
||||
} |
||||
] |
||||
} |
||||
} |
||||
], |
||||
"DOLPHIN_ALERT": [ |
||||
{ |
||||
"name": "DOLPHIN_DOLPHIN_ALERT_CHECK", |
||||
"label": "check dolphin scheduler alert status", |
||||
"description": "", |
||||
"interval":10, |
||||
"scope": "HOST", |
||||
"enabled": true, |
||||
"source": { |
||||
"type": "SCRIPT", |
||||
"path": "DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py", |
||||
"parameters": [ |
||||
|
||||
{ |
||||
"name": "connection.timeout", |
||||
"display_name": "Connection Timeout", |
||||
"value": 5.0, |
||||
"type": "NUMERIC", |
||||
"description": "The maximum time before this alert is considered to be CRITICAL", |
||||
"units": "seconds", |
||||
"threshold": "CRITICAL" |
||||
}, |
||||
{ |
||||
"name": "alertName", |
||||
"display_name": "alertName", |
||||
"value": "DOLPHIN_ALERT", |
||||
"type": "STRING", |
||||
"description": "alert name" |
||||
} |
||||
] |
||||
} |
||||
} |
||||
], |
||||
"DOLPHIN_ALERT": [ |
||||
{ |
||||
"name": "DOLPHIN_DOLPHIN_LOGGER_CHECK", |
||||
"label": "check dolphin scheduler alert status", |
||||
"description": "", |
||||
"interval":10, |
||||
"scope": "HOST", |
||||
"enabled": true, |
||||
"source": { |
||||
"type": "SCRIPT", |
||||
"path": "DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py", |
||||
"parameters": [ |
||||
|
||||
{ |
||||
"name": "connection.timeout", |
||||
"display_name": "Connection Timeout", |
||||
"value": 5.0, |
||||
"type": "NUMERIC", |
||||
"description": "The maximum time before this alert is considered to be CRITICAL", |
||||
"units": "seconds", |
||||
"threshold": "CRITICAL" |
||||
}, |
||||
{ |
||||
"name": "alertName", |
||||
"display_name": "alertName", |
||||
"value": "DOLPHIN_LOGGER", |
||||
"type": "STRING", |
||||
"description": "alert name" |
||||
} |
||||
] |
||||
} |
||||
} |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,143 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>alert.type</name> |
||||
<value>EMAIL</value> |
||||
<description>alert type is EMAIL/SMS</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>alert.template</name> |
||||
<value>html</value> |
||||
<description>alter msg template, default is html template</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.protocol</name> |
||||
<value>SMTP</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.server.host</name> |
||||
<value>xxx.xxx.com</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.server.port</name> |
||||
<value>25</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.sender</name> |
||||
<value>admin</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.user</name> |
||||
<value>admin</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.passwd</name> |
||||
<value>000000</value> |
||||
<description></description> |
||||
<property-type>PASSWORD</property-type> |
||||
<value-attributes> |
||||
<type>password</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>mail.smtp.starttls.enable</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.smtp.ssl.enable</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mail.smtp.ssl.trust</name> |
||||
<value>xxx.xxx.com</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>enterprise.wechat.enable</name> |
||||
<value>false</value> |
||||
<description></description> |
||||
<value-attributes> |
||||
<type>value-list</type> |
||||
<entries> |
||||
<entry> |
||||
<value>true</value> |
||||
<label>Enabled</label> |
||||
</entry> |
||||
<entry> |
||||
<value>false</value> |
||||
<label>Disabled</label> |
||||
</entry> |
||||
</entries> |
||||
<selection-cardinality>1</selection-cardinality> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>enterprise.wechat.corp.id</name> |
||||
<value>wechatId</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>enterprise.wechat.secret</name> |
||||
<value>secret</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>enterprise.wechat.agent.id</name> |
||||
<value>agentId</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>enterprise.wechat.users</name> |
||||
<value>wechatUsers</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,87 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>server.port</name> |
||||
<value>12345</value> |
||||
<description> |
||||
server port |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
</property> |
||||
<property> |
||||
<name>server.servlet.session.timeout</name> |
||||
<value>7200</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
</property> |
||||
<property> |
||||
<name>server.servlet.context-path</name> |
||||
<value>/dolphinscheduler/</value> |
||||
<description> |
||||
</description> |
||||
</property> |
||||
<property> |
||||
<name>spring.servlet.multipart.max-file-size</name> |
||||
<value>1024</value> |
||||
<value-attributes> |
||||
<unit>MB</unit> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
</property> |
||||
<property> |
||||
<name>spring.servlet.multipart.max-request-size</name> |
||||
<value>1024</value> |
||||
<value-attributes> |
||||
<unit>MB</unit> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
</property> |
||||
<property> |
||||
<name>server.jetty.max-http-post-size</name> |
||||
<value>5000000</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
</property> |
||||
<property> |
||||
<name>spring.messages.encoding</name> |
||||
<value>UTF-8</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>spring.messages.basename</name> |
||||
<value>i18n/messages</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>security.authentication.type</name> |
||||
<value>PASSWORD</value> |
||||
<description></description> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,158 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>resource.storage.type</name> |
||||
<display-name>Choose Resource Upload Startup Type</display-name> |
||||
<description> |
||||
Resource upload startup type : HDFS,S3,NONE |
||||
</description> |
||||
<value>NONE</value> |
||||
<value-attributes> |
||||
<type>value-list</type> |
||||
<entries> |
||||
<entry> |
||||
<value>HDFS</value> |
||||
<label>HDFS</label> |
||||
</entry> |
||||
<entry> |
||||
<value>S3</value> |
||||
<label>S3</label> |
||||
</entry> |
||||
<entry> |
||||
<value>NONE</value> |
||||
<label>NONE</label> |
||||
</entry> |
||||
</entries> |
||||
<selection-cardinality>1</selection-cardinality> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>resource.upload.path</name> |
||||
<value>/dolphinscheduler</value> |
||||
<description> |
||||
resource store on HDFS/S3 path, resource file will store to this hadoop hdfs path, self configuration, please make sure the directory exists on hdfs and have read write permissions。"/dolphinscheduler" is recommended |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>data.basedir.path</name> |
||||
<value>/tmp/dolphinscheduler</value> |
||||
<description> |
||||
user data local directory path, please make sure the directory exists and have read write permissions |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>hadoop.security.authentication.startup.state</name> |
||||
<value>false</value> |
||||
<value-attributes> |
||||
<type>value-list</type> |
||||
<entries> |
||||
<entry> |
||||
<value>true</value> |
||||
<label>Enabled</label> |
||||
</entry> |
||||
<entry> |
||||
<value>false</value> |
||||
<label>Disabled</label> |
||||
</entry> |
||||
</entries> |
||||
<selection-cardinality>1</selection-cardinality> |
||||
</value-attributes> |
||||
<description>whether kerberos starts</description> |
||||
</property> |
||||
<property> |
||||
<name>java.security.krb5.conf.path</name> |
||||
<value>/opt/krb5.conf</value> |
||||
<description> |
||||
java.security.krb5.conf path |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>login.user.keytab.username</name> |
||||
<value>hdfs-mycluster@ESZ.COM</value> |
||||
<description> |
||||
LoginUserFromKeytab user |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>login.user.keytab.path</name> |
||||
<value>/opt/hdfs.headless.keytab</value> |
||||
<description> |
||||
LoginUserFromKeytab path |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>resource.view.suffixs</name> |
||||
<value>txt,log,sh,conf,cfg,py,java,sql,hql,xml,properties</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>hdfs.root.user</name> |
||||
<value>hdfs</value> |
||||
<description> |
||||
Users who have permission to create directories under the HDFS root path |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>fs.defaultFS</name> |
||||
<value>hdfs://mycluster:8020</value> |
||||
<description> |
||||
HA or single namenode, |
||||
If namenode ha needs to copy core-site.xml and hdfs-site.xml to the conf directory, |
||||
support s3,for example : s3a://dolphinscheduler |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>fs.s3a.endpoint</name> |
||||
<value>http://host:9010</value> |
||||
<description> |
||||
s3 need,s3 endpoint |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>fs.s3a.access.key</name> |
||||
<value>A3DXS30FO22544RE</value> |
||||
<description> |
||||
s3 need,s3 access key |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>fs.s3a.secret.key</name> |
||||
<value>OloCLq3n+8+sdPHUhJ21XrSxTC+JK</value> |
||||
<description> |
||||
s3 need,s3 secret key |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>kerberos.expire.time</name> |
||||
<value>7</value> |
||||
<description></description> |
||||
</property> |
||||
|
||||
</configuration> |
@ -0,0 +1,467 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>spring.datasource.initialSize</name> |
||||
<value>5</value> |
||||
<description> |
||||
Init connection number |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.minIdle</name> |
||||
<value>5</value> |
||||
<description> |
||||
Min connection number |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.maxActive</name> |
||||
<value>50</value> |
||||
<description> |
||||
Max connection number |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.maxWait</name> |
||||
<value>60000</value> |
||||
<description> |
||||
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. |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.timeBetweenEvictionRunsMillis</name> |
||||
<value>60000</value> |
||||
<description> |
||||
Milliseconds for check to close free connections |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.timeBetweenConnectErrorMillis</name> |
||||
<value>60000</value> |
||||
<description> |
||||
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. |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.minEvictableIdleTimeMillis</name> |
||||
<value>300000</value> |
||||
<description> |
||||
The longest time a connection remains idle without being evicted, in milliseconds |
||||
</description> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.validationQuery</name> |
||||
<value>SELECT 1</value> |
||||
<description> |
||||
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. |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.validationQueryTimeout</name> |
||||
<value>3</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
Check whether the connection is valid for timeout, in seconds |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.testWhileIdle</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description> |
||||
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 |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.testOnBorrow</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description> |
||||
Execute validation to check if the connection is valid when applying for a connection |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.testOnReturn</name> |
||||
<value>false</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description> |
||||
Execute validation to check if the connection is valid when the connection is returned |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.defaultAutoCommit</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.keepAlive</name> |
||||
<value>false</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>spring.datasource.poolPreparedStatements</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description> |
||||
Open PSCache, specify count PSCache for every connection |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.maxPoolPreparedStatementPerConnectionSize</name> |
||||
<value>20</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.spring.datasource.filters</name> |
||||
<value>stat,wall,log4j</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>spring.datasource.connectionProperties</name> |
||||
<value>druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>mybatis-plus.mapper-locations</name> |
||||
<value>classpath*:/org.apache.dolphinscheduler.dao.mapper/*.xml</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.typeEnumsPackage</name> |
||||
<value>org.apache.dolphinscheduler.*.enums</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.typeAliasesPackage</name> |
||||
<value>org.apache.dolphinscheduler.dao.entity</value> |
||||
<description> |
||||
Entity scan, where multiple packages are separated by a comma or semicolon |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.global-config.db-config.id-type</name> |
||||
<value>AUTO</value> |
||||
<value-attributes> |
||||
<type>value-list</type> |
||||
<entries> |
||||
<entry> |
||||
<value>AUTO</value> |
||||
<label>AUTO</label> |
||||
</entry> |
||||
<entry> |
||||
<value>INPUT</value> |
||||
<label>INPUT</label> |
||||
</entry> |
||||
<entry> |
||||
<value>ID_WORKER</value> |
||||
<label>ID_WORKER</label> |
||||
</entry> |
||||
<entry> |
||||
<value>UUID</value> |
||||
<label>UUID</label> |
||||
</entry> |
||||
</entries> |
||||
<selection-cardinality>1</selection-cardinality> |
||||
</value-attributes> |
||||
<description> |
||||
Primary key type AUTO:" database ID AUTO ", |
||||
INPUT:" user INPUT ID", |
||||
ID_WORKER:" global unique ID (numeric type unique ID)", |
||||
UUID:" global unique ID UUID"; |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.global-config.db-config.field-strategy</name> |
||||
<value>NOT_NULL</value> |
||||
<value-attributes> |
||||
<type>value-list</type> |
||||
<entries> |
||||
<entry> |
||||
<value>IGNORED</value> |
||||
<label>IGNORED</label> |
||||
</entry> |
||||
<entry> |
||||
<value>NOT_NULL</value> |
||||
<label>NOT_NULL</label> |
||||
</entry> |
||||
<entry> |
||||
<value>NOT_EMPTY</value> |
||||
<label>NOT_EMPTY</label> |
||||
</entry> |
||||
</entries> |
||||
<selection-cardinality>1</selection-cardinality> |
||||
</value-attributes> |
||||
<description> |
||||
Field policy IGNORED:" ignore judgment ", |
||||
NOT_NULL:" not NULL judgment "), |
||||
NOT_EMPTY:" not NULL judgment" |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.global-config.db-config.column-underline</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.global-config.db-config.logic-delete-value</name> |
||||
<value>1</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.global-config.db-config.logic-not-delete-value</name> |
||||
<value>0</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.global-config.db-config.banner</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>mybatis-plus.configuration.map-underscore-to-camel-case</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.configuration.cache-enabled</name> |
||||
<value>false</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.configuration.call-setters-on-nulls</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>mybatis-plus.configuration.jdbc-type-for-null</name> |
||||
<value>null</value> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.exec.threads</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.exec.task.num</name> |
||||
<value>20</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.heartbeat.interval</name> |
||||
<value>10</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.task.commit.retryTimes</name> |
||||
<value>5</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.task.commit.interval</name> |
||||
<value>1000</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.max.cpuload.avg</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.reserved.memory</name> |
||||
<value>0.1</value> |
||||
<value-attributes> |
||||
<type>float</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.exec.threads</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.heartbeat.interval</name> |
||||
<value>10</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.fetch.task.num</name> |
||||
<value>3</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.max.cpuload.avg</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.reserved.memory</name> |
||||
<value>0.1</value> |
||||
<value-attributes> |
||||
<type>float</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
</configuration> |
@ -0,0 +1,123 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>dolphin.database.type</name> |
||||
<value>mysql</value> |
||||
<description>Dolphin Scheduler DataBase Type Which Is Select</description> |
||||
<display-name>Dolphin Database Type</display-name> |
||||
<value-attributes> |
||||
<type>value-list</type> |
||||
<entries> |
||||
<entry> |
||||
<value>mysql</value> |
||||
<label>Mysql</label> |
||||
</entry> |
||||
<entry> |
||||
<value>postgresql</value> |
||||
<label>Postgresql</label> |
||||
</entry> |
||||
</entries> |
||||
<selection-cardinality>1</selection-cardinality> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>dolphin.database.host</name> |
||||
<value></value> |
||||
<display-name>Dolphin Database Host</display-name> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>dolphin.database.port</name> |
||||
<value></value> |
||||
<display-name>Dolphin Database Port</display-name> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>dolphin.database.username</name> |
||||
<value></value> |
||||
<display-name>Dolphin Database Username</display-name> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>dolphin.database.password</name> |
||||
<value></value> |
||||
<display-name>Dolphin Database Password</display-name> |
||||
<property-type>PASSWORD</property-type> |
||||
<value-attributes> |
||||
<type>password</type> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>dolphin.user</name> |
||||
<value></value> |
||||
<description>Which user to install and admin dolphin scheduler</description> |
||||
<display-name>Deploy User</display-name> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>dolphin.group</name> |
||||
<value></value> |
||||
<description>Which user to install and admin dolphin scheduler</description> |
||||
<display-name>Deploy Group</display-name> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>dolphinscheduler-env-content</name> |
||||
<display-name>Dolphinscheduler Env template</display-name> |
||||
<description>This is the jinja template for dolphinscheduler.env.sh file</description> |
||||
<value># |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
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 FLINK_HOME=/opt/soft/flink</value> |
||||
<value-attributes> |
||||
<type>content</type> |
||||
<empty-value-valid>false</empty-value-valid> |
||||
<show-property-name>false</show-property-name> |
||||
</value-attributes> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,88 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>master.exec.threads</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>master execute thread num</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.exec.task.num</name> |
||||
<value>20</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>master execute task number in parallel</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.heartbeat.interval</name> |
||||
<value>10</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>master heartbeat interval</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.task.commit.retryTimes</name> |
||||
<value>5</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>master commit task retry times</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.task.commit.interval</name> |
||||
<value>1000</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>master commit task interval</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.max.cpuload.avg</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>only less than cpu avg load, master server can work. default value : the number of cpu cores * 2</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>master.reserved.memory</name> |
||||
<value>0.3</value> |
||||
<description>only larger than reserved memory, master server can work. default value : physical memory * 1/10, unit is G.</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>master.listen.port</name> |
||||
<value>5678</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>master listen port</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,126 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>org.quartz.scheduler.instanceName</name> |
||||
<value>DolphinScheduler</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<!-- 列举枚举值 --> |
||||
<name>org.quartz.scheduler.instanceId</name> |
||||
<value>AUTO</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.scheduler.makeSchedulerThreadDaemon</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.useProperties</name> |
||||
<value>false</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.threadPool.class</name> |
||||
<value>org.quartz.simpl.SimpleThreadPool</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.threadPool.makeThreadsDaemons</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.threadPool.threadCount</name> |
||||
<value>25</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.threadPool.threadPriority</name> |
||||
<value>5</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.class</name> |
||||
<value>org.quartz.impl.jdbcjobstore.JobStoreTX</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.tablePrefix</name> |
||||
<value>QRTZ_</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.isClustered</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.misfireThreshold</name> |
||||
<value>60000</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.clusterCheckinInterval</name> |
||||
<value>5000</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.acquireTriggersWithinLock</name> |
||||
<value>true</value> |
||||
<value-attributes> |
||||
<type>boolean</type> |
||||
</value-attributes> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.jobStore.dataSource</name> |
||||
<value>myDs</value> |
||||
<description></description> |
||||
</property> |
||||
<property> |
||||
<name>org.quartz.dataSource.myDs.connectionProvider.class</name> |
||||
<value>org.apache.dolphinscheduler.service.quartz.DruidConnectionProvider</value> |
||||
<description></description> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,76 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>worker.exec.threads</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>worker execute thread num</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.heartbeat.interval</name> |
||||
<value>10</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>worker heartbeat interval</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.fetch.task.num</name> |
||||
<value>3</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>submit the number of tasks at a time</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.max.cpuload.avg</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>only less than cpu avg load, worker server can work. default value : the number of cpu cores * 2</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.reserved.memory</name> |
||||
<value>0.3</value> |
||||
<description>only larger than reserved memory, worker server can work. default value : physical memory * 1/10, unit is G.</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
|
||||
<property> |
||||
<name>worker.listen.port</name> |
||||
<value>1234</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description>worker listen port</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>worker.group</name> |
||||
<value>default</value> |
||||
<description>default worker group</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,84 @@
|
||||
<!-- |
||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
||||
~ contributor license agreements. See the NOTICE file distributed with |
||||
~ this work for additional information regarding copyright ownership. |
||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
~ (the "License"); you may not use this file except in compliance with |
||||
~ the License. You may obtain a copy of the License at |
||||
~ |
||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
||||
~ |
||||
~ Unless required by applicable law or agreed to in writing, software |
||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
~ See the License for the specific language governing permissions and |
||||
~ limitations under the License. |
||||
--> |
||||
<configuration> |
||||
<property> |
||||
<name>dolphinscheduler.queue.impl</name> |
||||
<value>zookeeper</value> |
||||
<description> |
||||
Task queue implementation, default "zookeeper" |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>zookeeper.dolphinscheduler.root</name> |
||||
<value>/dolphinscheduler</value> |
||||
<description> |
||||
dolphinscheduler root directory |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>zookeeper.session.timeout</name> |
||||
<value>300</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>zookeeper.connection.timeout</name> |
||||
<value>300</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>zookeeper.retry.base.sleep</name> |
||||
<value>100</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>zookeeper.retry.max.sleep</name> |
||||
<value>30000</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
<property> |
||||
<name>zookeeper.retry.maxtime</name> |
||||
<value>5</value> |
||||
<value-attributes> |
||||
<type>int</type> |
||||
</value-attributes> |
||||
<description> |
||||
</description> |
||||
<on-ambari-upgrade add="true"/> |
||||
</property> |
||||
</configuration> |
@ -0,0 +1,137 @@
|
||||
<?xml version="1.0"?> |
||||
<!-- |
||||
Licensed to the Apache Software Foundation (ASF) under one or more |
||||
contributor license agreements. See the NOTICE file distributed with |
||||
this work for additional information regarding copyright ownership. |
||||
The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
(the "License"); you may not use this file except in compliance with |
||||
the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
--> |
||||
<metainfo> |
||||
<schemaVersion>2.0</schemaVersion> |
||||
<services> |
||||
<service> |
||||
<name>DOLPHIN</name> |
||||
<displayName>Dolphin Scheduler</displayName> |
||||
<comment>分布式易扩展的可视化DAG工作流任务调度系统</comment> |
||||
<version>2.0.0</version> |
||||
<components> |
||||
<component> |
||||
<name>DOLPHIN_MASTER</name> |
||||
<displayName>DS Master</displayName> |
||||
<category>MASTER</category> |
||||
<cardinality>1+</cardinality> |
||||
<commandScript> |
||||
<script>scripts/dolphin_master_service.py</script> |
||||
<scriptType>PYTHON</scriptType> |
||||
<timeout>600</timeout> |
||||
</commandScript> |
||||
</component> |
||||
|
||||
<component> |
||||
<name>DOLPHIN_LOGGER</name> |
||||
<displayName>DS Logger</displayName> |
||||
<category>SLAVE</category> |
||||
<cardinality>1+</cardinality> |
||||
<commandScript> |
||||
<script>scripts/dolphin_logger_service.py</script> |
||||
<scriptType>PYTHON</scriptType> |
||||
<timeout>600</timeout> |
||||
</commandScript> |
||||
</component> |
||||
|
||||
<component> |
||||
<name>DOLPHIN_WORKER</name> |
||||
<displayName>DS Worker</displayName> |
||||
<category>SLAVE</category> |
||||
<cardinality>1+</cardinality> |
||||
<dependencies> |
||||
<dependency> |
||||
<name>DOLPHIN/DOLPHIN_LOGGER</name> |
||||
<scope>host</scope> |
||||
<auto-deploy> |
||||
<enabled>true</enabled> |
||||
</auto-deploy> |
||||
</dependency> |
||||
</dependencies> |
||||
<commandScript> |
||||
<script>scripts/dolphin_worker_service.py</script> |
||||
<scriptType>PYTHON</scriptType> |
||||
<timeout>600</timeout> |
||||
</commandScript> |
||||
</component> |
||||
|
||||
<component> |
||||
<name>DOLPHIN_ALERT</name> |
||||
<displayName>DS Alert</displayName> |
||||
<category>SLAVE</category> |
||||
<cardinality>1</cardinality> |
||||
<commandScript> |
||||
<script>scripts/dolphin_alert_service.py</script> |
||||
<scriptType>PYTHON</scriptType> |
||||
<timeout>600</timeout> |
||||
</commandScript> |
||||
</component> |
||||
|
||||
<component> |
||||
<name>DOLPHIN_API</name> |
||||
<displayName>DS_Api</displayName> |
||||
<category>SLAVE</category> |
||||
<cardinality>1</cardinality> |
||||
<commandScript> |
||||
<script>scripts/dolphin_api_service.py</script> |
||||
<scriptType>PYTHON</scriptType> |
||||
<timeout>600</timeout> |
||||
</commandScript> |
||||
</component> |
||||
</components> |
||||
|
||||
<requiredServices> |
||||
<service>ZOOKEEPER</service> |
||||
</requiredServices> |
||||
|
||||
<osSpecifics> |
||||
<osSpecific> |
||||
<osFamily>any</osFamily> |
||||
<packages> |
||||
<package> |
||||
<name>apache-dolphinscheduler-incubating-1.2.1*</name> |
||||
</package> |
||||
</packages> |
||||
</osSpecific> |
||||
</osSpecifics> |
||||
|
||||
<configuration-dependencies> |
||||
<config-type>dolphin-alert</config-type> |
||||
<config-type>dolphin-app-api</config-type> |
||||
<config-type>dolphin-app-dao</config-type> |
||||
<config-type>dolphin-common</config-type> |
||||
<config-type>dolphin-env</config-type> |
||||
<config-type>dolphin-quartz</config-type> |
||||
</configuration-dependencies> |
||||
|
||||
<themes> |
||||
<theme> |
||||
<fileName>theme.json</fileName> |
||||
<default>true</default> |
||||
</theme> |
||||
</themes> |
||||
|
||||
<quickLinksConfigurations-dir>quicklinks</quickLinksConfigurations-dir> |
||||
<quickLinksConfigurations> |
||||
<quickLinksConfiguration> |
||||
<fileName>quicklinks.json</fileName> |
||||
<default>true</default> |
||||
</quickLinksConfiguration> |
||||
</quickLinksConfigurations> |
||||
</service> |
||||
</services> |
||||
</metainfo> |
@ -0,0 +1,124 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
|
||||
import socket |
||||
import urllib2 |
||||
import os |
||||
import logging |
||||
import ambari_simplejson as json |
||||
from resource_management.libraries.script.script import Script |
||||
import sys |
||||
reload(sys) |
||||
sys.setdefaultencoding('utf-8') |
||||
|
||||
logger = logging.getLogger('ambari_alerts') |
||||
|
||||
config = Script.get_config() |
||||
|
||||
|
||||
def get_tokens(): |
||||
""" |
||||
Returns a tuple of tokens in the format {{site/property}} that will be used |
||||
to build the dictionary passed into execute |
||||
|
||||
:rtype tuple |
||||
""" |
||||
|
||||
def get_info(url, connection_timeout): |
||||
response = None |
||||
|
||||
try: |
||||
response = urllib2.urlopen(url, timeout=connection_timeout) |
||||
json_data = response.read() |
||||
return json_data |
||||
finally: |
||||
if response is not None: |
||||
try: |
||||
response.close() |
||||
except: |
||||
pass |
||||
|
||||
|
||||
def execute(configurations={}, parameters={}, host_name=None): |
||||
""" |
||||
Returns a tuple containing the result code and a pre-formatted result label |
||||
|
||||
Keyword arguments: |
||||
configurations : a mapping of configuration key to value |
||||
parameters : a mapping of script parameter key to value |
||||
host_name : the name of this host where the alert is running |
||||
|
||||
:type configurations dict |
||||
:type parameters dict |
||||
:type host_name str |
||||
""" |
||||
|
||||
alert_name = parameters['alertName'] |
||||
|
||||
dolphin_pidfile_dir = "/opt/soft/run/dolphinscheduler" |
||||
|
||||
pid = "0" |
||||
|
||||
|
||||
from resource_management.core import sudo |
||||
|
||||
is_running = True |
||||
pid_file_path = "" |
||||
if alert_name == 'DOLPHIN_MASTER': |
||||
pid_file_path = dolphin_pidfile_dir + "/master-server.pid" |
||||
elif alert_name == 'DOLPHIN_WORKER': |
||||
pid_file_path = dolphin_pidfile_dir + "/worker-server.pid" |
||||
elif alert_name == 'DOLPHIN_ALERT': |
||||
pid_file_path = dolphin_pidfile_dir + "/alert-server.pid" |
||||
elif alert_name == 'DOLPHIN_LOGGER': |
||||
pid_file_path = dolphin_pidfile_dir + "/logger-server.pid" |
||||
elif alert_name == 'DOLPHIN_API': |
||||
pid_file_path = dolphin_pidfile_dir + "/api-server.pid" |
||||
|
||||
if not pid_file_path or not os.path.isfile(pid_file_path): |
||||
is_running = False |
||||
|
||||
try: |
||||
pid = int(sudo.read_file(pid_file_path)) |
||||
except: |
||||
is_running = False |
||||
|
||||
try: |
||||
# Kill will not actually kill the process |
||||
# From the doc: |
||||
# If sig is 0, then no signal is sent, but error checking is still |
||||
# performed; this can be used to check for the existence of a |
||||
# process ID or process group ID. |
||||
sudo.kill(pid, 0) |
||||
except OSError: |
||||
is_running = False |
||||
|
||||
if host_name is None: |
||||
host_name = socket.getfqdn() |
||||
|
||||
if not is_running: |
||||
result_code = "CRITICAL" |
||||
else: |
||||
result_code = "OK" |
||||
|
||||
label = "The comment {0} of DOLPHIN_SCHEDULER on {1} is {2}".format(alert_name, host_name, result_code) |
||||
|
||||
return ((result_code, [label])) |
||||
|
||||
if __name__ == "__main__": |
||||
pass |
@ -0,0 +1,61 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
import time |
||||
from resource_management import * |
||||
|
||||
from dolphin_env import dolphin_env |
||||
|
||||
|
||||
class DolphinAlertService(Script): |
||||
def install(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.install_packages(env) |
||||
Execute(('chmod', '-R', '777', params.dolphin_home), user=params.dolphin_user, sudo=True) |
||||
|
||||
def configure(self, env): |
||||
import params |
||||
params.pika_slave = True |
||||
env.set_params(params) |
||||
|
||||
dolphin_env() |
||||
|
||||
def start(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.configure(env) |
||||
no_op_test = format("ls {dolphin_pidfile_dir}/alert-server.pid >/dev/null 2>&1 && ps `cat {dolphin_pidfile_dir}/alert-server.pid` | grep `cat {dolphin_pidfile_dir}/alert-server.pid` >/dev/null 2>&1") |
||||
|
||||
start_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh start alert-server") |
||||
Execute(start_cmd, user=params.dolphin_user, not_if=no_op_test) |
||||
|
||||
def stop(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
stop_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh stop alert-server") |
||||
Execute(stop_cmd, user=params.dolphin_user) |
||||
time.sleep(5) |
||||
|
||||
def status(self, env): |
||||
import status_params |
||||
env.set_params(status_params) |
||||
check_process_status(status_params.dolphin_run_dir + "alert-server.pid") |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
DolphinAlertService().execute() |
@ -0,0 +1,70 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
import time |
||||
from resource_management import * |
||||
|
||||
from dolphin_env import dolphin_env |
||||
|
||||
|
||||
class DolphinApiService(Script): |
||||
def install(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.install_packages(env) |
||||
Execute(('chmod', '-R', '777', params.dolphin_home), user=params.dolphin_user, sudo=True) |
||||
|
||||
def configure(self, env): |
||||
import params |
||||
params.pika_slave = True |
||||
env.set_params(params) |
||||
|
||||
dolphin_env() |
||||
|
||||
def start(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.configure(env) |
||||
|
||||
#init |
||||
init_cmd=format("sh " + params.dolphin_home + "/script/create-dolphinscheduler.sh") |
||||
Execute(init_cmd, user=params.dolphin_user) |
||||
|
||||
#upgrade |
||||
upgrade_cmd=format("sh " + params.dolphin_home + "/script/upgrade-dolphinscheduler.sh") |
||||
Execute(upgrade_cmd, user=params.dolphin_user) |
||||
|
||||
no_op_test = format("ls {dolphin_pidfile_dir}/api-server.pid >/dev/null 2>&1 && ps `cat {dolphin_pidfile_dir}/api-server.pid` | grep `cat {dolphin_pidfile_dir}/api-server.pid` >/dev/null 2>&1") |
||||
|
||||
start_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh start api-server") |
||||
Execute(start_cmd, user=params.dolphin_user, not_if=no_op_test) |
||||
|
||||
def stop(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
stop_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh stop api-server") |
||||
Execute(stop_cmd, user=params.dolphin_user) |
||||
time.sleep(5) |
||||
|
||||
def status(self, env): |
||||
import status_params |
||||
env.set_params(status_params) |
||||
check_process_status(status_params.dolphin_run_dir + "api-server.pid") |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
DolphinApiService().execute() |
@ -0,0 +1,123 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
|
||||
""" |
||||
|
||||
from resource_management import * |
||||
|
||||
|
||||
def dolphin_env(): |
||||
import params |
||||
|
||||
Directory(params.dolphin_pidfile_dir, |
||||
mode=0777, |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group, |
||||
create_parents=True |
||||
) |
||||
Directory(params.dolphin_log_dir, |
||||
mode=0777, |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group, |
||||
create_parents=True |
||||
) |
||||
Directory(params.dolphin_conf_dir, |
||||
mode=0777, |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group, |
||||
create_parents=True |
||||
) |
||||
|
||||
Directory(params.dolphin_common_map['data.basedir.path'], |
||||
mode=0777, |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group, |
||||
create_parents=True |
||||
) |
||||
|
||||
|
||||
File(format(params.dolphin_env_path), |
||||
mode=0777, |
||||
content=InlineTemplate(params.dolphin_env_content), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
|
||||
File(format(params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh"), |
||||
mode=0755, |
||||
content=Template("dolphin-daemon.sh.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/master.properties"), |
||||
mode=0755, |
||||
content=Template("master.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/worker.properties"), |
||||
mode=0755, |
||||
content=Template("worker.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
|
||||
File(format(params.dolphin_conf_dir + "/alert.properties"), |
||||
mode=0755, |
||||
content=Template("alert.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/datasource.properties"), |
||||
mode=0755, |
||||
content=Template("datasource.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/application-api.properties"), |
||||
mode=0755, |
||||
content=Template("application-api.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/common.properties"), |
||||
mode=0755, |
||||
content=Template("common.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/quartz.properties"), |
||||
mode=0755, |
||||
content=Template("quartz.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
||||
|
||||
File(format(params.dolphin_conf_dir + "/zookeeper.properties"), |
||||
mode=0755, |
||||
content=Template("zookeeper.properties.j2"), |
||||
owner=params.dolphin_user, |
||||
group=params.dolphin_group |
||||
) |
@ -0,0 +1,61 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
import time |
||||
from resource_management import * |
||||
|
||||
from dolphin_env import dolphin_env |
||||
|
||||
|
||||
class DolphinLoggerService(Script): |
||||
def install(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.install_packages(env) |
||||
Execute(('chmod', '-R', '777', params.dolphin_home), user=params.dolphin_user, sudo=True) |
||||
|
||||
def configure(self, env): |
||||
import params |
||||
params.pika_slave = True |
||||
env.set_params(params) |
||||
|
||||
dolphin_env() |
||||
|
||||
def start(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.configure(env) |
||||
no_op_test = format("ls {dolphin_pidfile_dir}/logger-server.pid >/dev/null 2>&1 && ps `cat {dolphin_pidfile_dir}/logger-server.pid` | grep `cat {dolphin_pidfile_dir}/logger-server.pid` >/dev/null 2>&1") |
||||
|
||||
start_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh start logger-server") |
||||
Execute(start_cmd, user=params.dolphin_user, not_if=no_op_test) |
||||
|
||||
def stop(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
stop_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh stop logger-server") |
||||
Execute(stop_cmd, user=params.dolphin_user) |
||||
time.sleep(5) |
||||
|
||||
def status(self, env): |
||||
import status_params |
||||
env.set_params(status_params) |
||||
check_process_status(status_params.dolphin_run_dir + "logger-server.pid") |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
DolphinLoggerService().execute() |
@ -0,0 +1,61 @@
|
||||
# -*- coding: utf-8 -*- |
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
import time |
||||
from resource_management import * |
||||
|
||||
from dolphin_env import dolphin_env |
||||
|
||||
|
||||
class DolphinMasterService(Script): |
||||
def install(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.install_packages(env) |
||||
Execute(('chmod', '-R', '777', params.dolphin_home), user=params.dolphin_user, sudo=True) |
||||
|
||||
def configure(self, env): |
||||
import params |
||||
params.pika_slave = True |
||||
env.set_params(params) |
||||
|
||||
dolphin_env() |
||||
|
||||
def start(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.configure(env) |
||||
no_op_test = format("ls {dolphin_pidfile_dir}/master-server.pid >/dev/null 2>&1 && ps `cat {dolphin_pidfile_dir}/master-server.pid` | grep `cat {dolphin_pidfile_dir}/master-server.pid` >/dev/null 2>&1") |
||||
start_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh start master-server") |
||||
Execute(start_cmd, user=params.dolphin_user, not_if=no_op_test) |
||||
|
||||
def stop(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
stop_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh stop master-server") |
||||
Execute(stop_cmd, user=params.dolphin_user) |
||||
time.sleep(5) |
||||
|
||||
def status(self, env): |
||||
import status_params |
||||
env.set_params(status_params) |
||||
check_process_status(status_params.dolphin_run_dir + "master-server.pid") |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
DolphinMasterService().execute() |
@ -0,0 +1,60 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
import time |
||||
from resource_management import * |
||||
|
||||
from dolphin_env import dolphin_env |
||||
|
||||
|
||||
class DolphinWorkerService(Script): |
||||
def install(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.install_packages(env) |
||||
Execute(('chmod', '-R', '777', params.dolphin_home), user=params.dolphin_user, sudo=True) |
||||
|
||||
def configure(self, env): |
||||
import params |
||||
params.pika_slave = True |
||||
env.set_params(params) |
||||
|
||||
dolphin_env() |
||||
|
||||
def start(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
self.configure(env) |
||||
no_op_test = format("ls {dolphin_pidfile_dir}/worker-server.pid >/dev/null 2>&1 && ps `cat {dolphin_pidfile_dir}/worker-server.pid` | grep `cat {dolphin_pidfile_dir}/worker-server.pid` >/dev/null 2>&1") |
||||
start_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh start worker-server") |
||||
Execute(start_cmd, user=params.dolphin_user, not_if=no_op_test) |
||||
|
||||
def stop(self, env): |
||||
import params |
||||
env.set_params(params) |
||||
stop_cmd = format("sh " + params.dolphin_bin_dir + "/dolphinscheduler-daemon.sh stop worker-server") |
||||
Execute(stop_cmd, user=params.dolphin_user) |
||||
time.sleep(5) |
||||
|
||||
def status(self, env): |
||||
import status_params |
||||
env.set_params(status_params) |
||||
check_process_status(status_params.dolphin_run_dir + "worker-server.pid") |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
DolphinWorkerService().execute() |
@ -0,0 +1,154 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
|
||||
|
||||
import sys |
||||
from resource_management import * |
||||
from resource_management.core.logger import Logger |
||||
from resource_management.libraries.functions import default |
||||
|
||||
Logger.initialize_logger() |
||||
reload(sys) |
||||
sys.setdefaultencoding('utf-8') |
||||
|
||||
# server configurations |
||||
config = Script.get_config() |
||||
|
||||
# conf_dir = "/etc/" |
||||
dolphin_home = "/opt/soft/dolphinscheduler" |
||||
dolphin_conf_dir = dolphin_home + "/conf" |
||||
dolphin_log_dir = dolphin_home + "/logs" |
||||
dolphin_bin_dir = dolphin_home + "/bin" |
||||
dolphin_lib_jars = dolphin_home + "/lib/*" |
||||
dolphin_pidfile_dir = "/opt/soft/run/dolphinscheduler" |
||||
|
||||
rmHosts = default("/clusterHostInfo/rm_host", []) |
||||
|
||||
# dolphin-env |
||||
dolphin_env_map = {} |
||||
dolphin_env_map.update(config['configurations']['dolphin-env']) |
||||
|
||||
# which user to install and admin dolphin scheduler |
||||
dolphin_user = dolphin_env_map['dolphin.user'] |
||||
dolphin_group = dolphin_env_map['dolphin.group'] |
||||
|
||||
# .dolphinscheduler_env.sh |
||||
dolphin_env_path = dolphin_conf_dir + '/env/dolphinscheduler_env.sh' |
||||
dolphin_env_content = dolphin_env_map['dolphinscheduler-env-content'] |
||||
|
||||
# database config |
||||
dolphin_database_config = {} |
||||
dolphin_database_config['dolphin_database_type'] = dolphin_env_map['dolphin.database.type'] |
||||
dolphin_database_config['dolphin_database_username'] = dolphin_env_map['dolphin.database.username'] |
||||
dolphin_database_config['dolphin_database_password'] = dolphin_env_map['dolphin.database.password'] |
||||
if 'mysql' == dolphin_database_config['dolphin_database_type']: |
||||
dolphin_database_config['dolphin_database_driver'] = 'com.mysql.jdbc.Driver' |
||||
dolphin_database_config['driverDelegateClass'] = 'org.quartz.impl.jdbcjobstore.StdJDBCDelegate' |
||||
dolphin_database_config['dolphin_database_url'] = 'jdbc:mysql://' + dolphin_env_map['dolphin.database.host'] \ |
||||
+ ':' + dolphin_env_map['dolphin.database.port'] \ |
||||
+ '/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8' |
||||
else: |
||||
dolphin_database_config['dolphin_database_driver'] = 'org.postgresql.Driver' |
||||
dolphin_database_config['driverDelegateClass'] = 'org.quartz.impl.jdbcjobstore.PostgreSQLDelegate' |
||||
dolphin_database_config['dolphin_database_url'] = 'jdbc:postgresql://' + dolphin_env_map['dolphin.database.host'] \ |
||||
+ ':' + dolphin_env_map['dolphin.database.port'] \ |
||||
+ '/dolphinscheduler' |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# application-alert.properties |
||||
dolphin_alert_map = {} |
||||
wechat_push_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$token' |
||||
wechat_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpId&corpsecret=$secret' |
||||
wechat_team_send_msg = '{\"toparty\":\"$toParty\",\"agentid\":\"$agentId\",\"msgtype\":\"text\",\"text\":{\"content\":\"$msg\"},\"safe\":\"0\"}' |
||||
wechat_user_send_msg = '{\"touser\":\"$toUser\",\"agentid\":\"$agentId\",\"msgtype\":\"markdown\",\"markdown\":{\"content\":\"$msg\"}}' |
||||
|
||||
dolphin_alert_config_map = config['configurations']['dolphin-alert'] |
||||
|
||||
if dolphin_alert_config_map['enterprise.wechat.enable']: |
||||
dolphin_alert_map['enterprise.wechat.push.ur'] = wechat_push_url |
||||
dolphin_alert_map['enterprise.wechat.token.url'] = wechat_token_url |
||||
dolphin_alert_map['enterprise.wechat.team.send.msg'] = wechat_team_send_msg |
||||
dolphin_alert_map['enterprise.wechat.user.send.msg'] = wechat_user_send_msg |
||||
|
||||
dolphin_alert_map.update(dolphin_alert_config_map) |
||||
|
||||
|
||||
|
||||
# application-api.properties |
||||
dolphin_app_api_map = {} |
||||
dolphin_app_api_map.update(config['configurations']['dolphin-application-api']) |
||||
|
||||
|
||||
# common.properties |
||||
dolphin_common_map = {} |
||||
|
||||
if 'yarn-site' in config['configurations'] and \ |
||||
'yarn.resourcemanager.webapp.address' in config['configurations']['yarn-site']: |
||||
yarn_resourcemanager_webapp_address = config['configurations']['yarn-site']['yarn.resourcemanager.webapp.address'] |
||||
yarn_application_status_address = 'http://' + yarn_resourcemanager_webapp_address + '/ws/v1/cluster/apps/%s' |
||||
dolphin_common_map['yarn.application.status.address'] = yarn_application_status_address |
||||
|
||||
rmHosts = default("/clusterHostInfo/rm_host", []) |
||||
if len(rmHosts) > 1: |
||||
dolphin_common_map['yarn.resourcemanager.ha.rm.ids'] = ','.join(rmHosts) |
||||
else: |
||||
dolphin_common_map['yarn.resourcemanager.ha.rm.ids'] = '' |
||||
|
||||
dolphin_common_map_tmp = config['configurations']['dolphin-common'] |
||||
data_basedir_path = dolphin_common_map_tmp['data.basedir.path'] |
||||
process_exec_basepath = data_basedir_path + '/exec' |
||||
data_download_basedir_path = data_basedir_path + '/download' |
||||
dolphin_common_map['process.exec.basepath'] = process_exec_basepath |
||||
dolphin_common_map['data.download.basedir.path'] = data_download_basedir_path |
||||
dolphin_common_map['dolphinscheduler.env.path'] = dolphin_env_path |
||||
dolphin_common_map.update(config['configurations']['dolphin-common']) |
||||
|
||||
# datasource.properties |
||||
dolphin_datasource_map = {} |
||||
dolphin_datasource_map['spring.datasource.type'] = 'com.alibaba.druid.pool.DruidDataSource' |
||||
dolphin_datasource_map['spring.datasource.driver-class-name'] = dolphin_database_config['dolphin_database_driver'] |
||||
dolphin_datasource_map['spring.datasource.url'] = dolphin_database_config['dolphin_database_url'] |
||||
dolphin_datasource_map['spring.datasource.username'] = dolphin_database_config['dolphin_database_username'] |
||||
dolphin_datasource_map['spring.datasource.password'] = dolphin_database_config['dolphin_database_password'] |
||||
dolphin_datasource_map.update(config['configurations']['dolphin-datasource']) |
||||
|
||||
# master.properties |
||||
dolphin_master_map = config['configurations']['dolphin-master'] |
||||
|
||||
# quartz.properties |
||||
dolphin_quartz_map = {} |
||||
dolphin_quartz_map['org.quartz.jobStore.driverDelegateClass'] = dolphin_database_config['driverDelegateClass'] |
||||
dolphin_quartz_map.update(config['configurations']['dolphin-quartz']) |
||||
|
||||
# worker.properties |
||||
dolphin_worker_map = config['configurations']['dolphin-worker'] |
||||
|
||||
# zookeeper.properties |
||||
dolphin_zookeeper_map={} |
||||
zookeeperHosts = default("/clusterHostInfo/zookeeper_hosts", []) |
||||
if len(zookeeperHosts) > 0 and "clientPort" in config['configurations']['zoo.cfg']: |
||||
clientPort = config['configurations']['zoo.cfg']['clientPort'] |
||||
zookeeperPort = ":" + clientPort + "," |
||||
dolphin_zookeeper_map['zookeeper.quorum'] = zookeeperPort.join(zookeeperHosts) + ":" + clientPort |
||||
dolphin_zookeeper_map.update(config['configurations']['dolphin-zookeeper']) |
||||
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
|
||||
""" |
||||
|
||||
from resource_management import * |
||||
from resource_management.libraries.functions import get_unique_id_and_date |
||||
|
||||
class ServiceCheck(Script): |
||||
def service_check(self, env): |
||||
import params |
||||
#env.set_params(params) |
||||
|
||||
# Execute(format("which pika_server")) |
||||
|
||||
if __name__ == "__main__": |
||||
ServiceCheck().execute() |
@ -0,0 +1,23 @@
|
||||
""" |
||||
Licensed to the Apache Software Foundation (ASF) under one |
||||
or more contributor license agreements. See the NOTICE file |
||||
distributed with this work for additional information |
||||
regarding copyright ownership. The ASF licenses this file |
||||
to you under the Apache License, Version 2.0 (the |
||||
"License"); you may not use this file except in compliance |
||||
with the License. You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
""" |
||||
|
||||
from resource_management import * |
||||
|
||||
config = Script.get_config() |
||||
|
||||
dolphin_run_dir = "/opt/soft/run/dolphinscheduler/" |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_alert_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_app_api_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_common_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_datasource_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,116 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
usage="Usage: dolphinscheduler-daemon.sh (start|stop) <command> " |
||||
|
||||
# if no args specified, show usage |
||||
if [ $# -le 1 ]; then |
||||
echo $usage |
||||
exit 1 |
||||
fi |
||||
|
||||
startStop=$1 |
||||
shift |
||||
command=$1 |
||||
shift |
||||
|
||||
echo "Begin $startStop $command......" |
||||
|
||||
BIN_DIR=`dirname $0` |
||||
BIN_DIR=`cd "$BIN_DIR"; pwd` |
||||
DOLPHINSCHEDULER_HOME=$BIN_DIR/.. |
||||
|
||||
export HOSTNAME=`hostname` |
||||
|
||||
DOLPHINSCHEDULER_LIB_JARS={{dolphin_lib_jars}} |
||||
|
||||
DOLPHINSCHEDULER_OPTS="-server -Xmx16g -Xms4g -Xss512k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70" |
||||
STOP_TIMEOUT=5 |
||||
|
||||
log={{dolphin_log_dir}}/dolphinscheduler-$command-$HOSTNAME.out |
||||
pid={{dolphin_pidfile_dir}}/$command.pid |
||||
|
||||
cd $DOLPHINSCHEDULER_HOME |
||||
|
||||
if [ "$command" = "api-server" ]; then |
||||
LOG_FILE="-Dlogging.config={{dolphin_conf_dir}}/logback-api.xml -Dspring.profiles.active=api" |
||||
CLASS=org.apache.dolphinscheduler.api.ApiApplicationServer |
||||
elif [ "$command" = "master-server" ]; then |
||||
LOG_FILE="-Dlogging.config={{dolphin_conf_dir}}/logback-master.xml -Ddruid.mysql.usePingMethod=false" |
||||
CLASS=org.apache.dolphinscheduler.server.master.MasterServer |
||||
elif [ "$command" = "worker-server" ]; then |
||||
LOG_FILE="-Dlogging.config={{dolphin_conf_dir}}/logback-worker.xml -Ddruid.mysql.usePingMethod=false" |
||||
CLASS=org.apache.dolphinscheduler.server.worker.WorkerServer |
||||
elif [ "$command" = "alert-server" ]; then |
||||
LOG_FILE="-Dlogging.config={{dolphin_conf_dir}}/logback-alert.xml" |
||||
CLASS=org.apache.dolphinscheduler.alert.AlertServer |
||||
elif [ "$command" = "logger-server" ]; then |
||||
CLASS=org.apache.dolphinscheduler.server.log.LoggerServer |
||||
else |
||||
echo "Error: No command named \`$command' was found." |
||||
exit 1 |
||||
fi |
||||
|
||||
case $startStop in |
||||
(start) |
||||
|
||||
if [ -f $pid ]; then |
||||
if kill -0 `cat $pid` > /dev/null 2>&1; then |
||||
echo $command running as process `cat $pid`. Stop it first. |
||||
exit 1 |
||||
fi |
||||
fi |
||||
|
||||
echo starting $command, logging to $log |
||||
|
||||
exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath {{dolphin_conf_dir}}:{{dolphin_lib_jars}} $CLASS" |
||||
|
||||
echo "nohup java $exec_command > $log 2>&1 < /dev/null &" |
||||
nohup java $exec_command > $log 2>&1 < /dev/null & |
||||
echo $! > $pid |
||||
;; |
||||
|
||||
(stop) |
||||
|
||||
if [ -f $pid ]; then |
||||
TARGET_PID=`cat $pid` |
||||
if kill -0 $TARGET_PID > /dev/null 2>&1; then |
||||
echo stopping $command |
||||
kill $TARGET_PID |
||||
sleep $STOP_TIMEOUT |
||||
if kill -0 $TARGET_PID > /dev/null 2>&1; then |
||||
echo "$command did not stop gracefully after $STOP_TIMEOUT seconds: killing with kill -9" |
||||
kill -9 $TARGET_PID |
||||
fi |
||||
else |
||||
echo no $command to stop |
||||
fi |
||||
rm -f $pid |
||||
else |
||||
echo no $command to stop |
||||
fi |
||||
;; |
||||
|
||||
(*) |
||||
echo $usage |
||||
exit 1 |
||||
;; |
||||
|
||||
esac |
||||
|
||||
echo "End $startStop $command." |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_master_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_quartz_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_worker_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,20 @@
|
||||
# |
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
|
||||
{% for key, value in dolphin_zookeeper_map.iteritems() -%} |
||||
{{key}}={{value}} |
||||
{% endfor %} |
@ -0,0 +1,26 @@
|
||||
{ |
||||
"name": "default", |
||||
"description": "default quick links configuration", |
||||
"configuration": { |
||||
"protocol": |
||||
{ |
||||
"type":"http" |
||||
}, |
||||
|
||||
"links": [ |
||||
{ |
||||
"name": "dolphin-application-ui", |
||||
"label": "DolphinApplication UI", |
||||
"requires_user_name": "false", |
||||
"component_name": "DOLPHIN_API", |
||||
"url": "%@://%@:%@/dolphinscheduler/ui/view/login/index.html", |
||||
"port":{ |
||||
"http_property": "server.port", |
||||
"http_default_port": "12345", |
||||
"regex": "^(\\d+)$", |
||||
"site": "dolphin-application-api" |
||||
} |
||||
} |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,661 @@
|
||||
{ |
||||
"name": "default", |
||||
"description": "Default theme for Dolphin Scheduler service", |
||||
"configuration": { |
||||
"layouts": [ |
||||
{ |
||||
"name": "default", |
||||
"tabs": [ |
||||
{ |
||||
"name": "settings", |
||||
"display-name": "Settings", |
||||
"layout": { |
||||
"tab-rows": "3", |
||||
"tab-columns": "3", |
||||
"sections": [ |
||||
{ |
||||
"name": "dolphin-env-config", |
||||
"display-name": "Dolphin Env Config", |
||||
"row-index": "0", |
||||
"column-index": "0", |
||||
"row-span": "1", |
||||
"column-span": "2", |
||||
"section-rows": "1", |
||||
"section-columns": "2", |
||||
"subsections": [ |
||||
{ |
||||
"name": "env-row1-col1", |
||||
"display-name": "Deploy User Info", |
||||
"row-index": "0", |
||||
"column-index": "0", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
}, |
||||
{ |
||||
"name": "env-row1-col2", |
||||
"display-name": "System Env Optimization", |
||||
"row-index": "0", |
||||
"column-index": "1", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"name": "dolphin-database-config", |
||||
"display-name": "Database Config", |
||||
"row-index": "1", |
||||
"column-index": "0", |
||||
"row-span": "1", |
||||
"column-span": "2", |
||||
"section-rows": "1", |
||||
"section-columns": "3", |
||||
"subsections": [ |
||||
{ |
||||
"name": "database-row1-col1", |
||||
"row-index": "0", |
||||
"column-index": "0", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
}, |
||||
{ |
||||
"name": "database-row1-col2", |
||||
"row-index": "0", |
||||
"column-index": "1", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
}, |
||||
{ |
||||
"name": "database-row1-col3", |
||||
"row-index": "0", |
||||
"column-index": "2", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"name": "dynamic-config", |
||||
"row-index": "2", |
||||
"column-index": "0", |
||||
"row-span": "1", |
||||
"column-span": "2", |
||||
"section-rows": "1", |
||||
"section-columns": "3", |
||||
"subsections": [ |
||||
{ |
||||
"name": "dynamic-row1-col1", |
||||
"display-name": "Resource FS Config", |
||||
"row-index": "0", |
||||
"column-index": "0", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
}, |
||||
{ |
||||
"name": "dynamic-row1-col2", |
||||
"display-name": "Kerberos Info", |
||||
"row-index": "0", |
||||
"column-index": "1", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
}, |
||||
{ |
||||
"name": "dynamic-row1-col3", |
||||
"display-name": "Wechat Info", |
||||
"row-index": "0", |
||||
"column-index": "1", |
||||
"row-span": "1", |
||||
"column-span": "1" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
} |
||||
] |
||||
} |
||||
], |
||||
"placement": { |
||||
"configuration-layout": "default", |
||||
"configs": [ |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.type", |
||||
"subsection-name": "database-row1-col1" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.host", |
||||
"subsection-name": "database-row1-col2" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.port", |
||||
"subsection-name": "database-row1-col2" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.username", |
||||
"subsection-name": "database-row1-col3" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.password", |
||||
"subsection-name": "database-row1-col3" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.user", |
||||
"subsection-name": "env-row1-col1" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.group", |
||||
"subsection-name": "env-row1-col1" |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphinscheduler-env-content", |
||||
"subsection-name": "env-row1-col2" |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/resource.storage.type", |
||||
"subsection-name": "dynamic-row1-col1" |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/resource.upload.path", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === HDFS || ${dolphin-common/resource.storage.type} === S3", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/hdfs.root.user", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === HDFS", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/data.store2hdfs.basepath", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === HDFS", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.defaultFS", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === HDFS", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.s3a.endpoint", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === S3", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.s3a.access.key", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === S3", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.s3a.secret.key", |
||||
"subsection-name": "dynamic-row1-col1", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/resource.storage.type" |
||||
], |
||||
"if": "${dolphin-common/resource.storage.type} === S3", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/hadoop.security.authentication.startup.state", |
||||
"subsection-name": "dynamic-row1-col2" |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/java.security.krb5.conf.path", |
||||
"subsection-name": "dynamic-row1-col2", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/hadoop.security.authentication.startup.state" |
||||
], |
||||
"if": "${dolphin-common/hadoop.security.authentication.startup.state}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/login.user.keytab.username", |
||||
"subsection-name": "dynamic-row1-col2", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/hadoop.security.authentication.startup.state" |
||||
], |
||||
"if": "${dolphin-common/hadoop.security.authentication.startup.state}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/login.user.keytab.path", |
||||
"subsection-name": "dynamic-row1-col2", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/hadoop.security.authentication.startup.state" |
||||
], |
||||
"if": "${dolphin-common/hadoop.security.authentication.startup.state}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/kerberos.expire.time", |
||||
"subsection-name": "dynamic-row1-col2", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-common/hadoop.security.authentication.startup.state" |
||||
], |
||||
"if": "${dolphin-common/hadoop.security.authentication.startup.state}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.enable", |
||||
"subsection-name": "dynamic-row1-col3" |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.corp.id", |
||||
"subsection-name": "dynamic-row1-col3", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-alert/enterprise.wechat.enable" |
||||
], |
||||
"if": "${dolphin-alert/enterprise.wechat.enable}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.secret", |
||||
"subsection-name": "dynamic-row1-col3", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-alert/enterprise.wechat.enable" |
||||
], |
||||
"if": "${dolphin-alert/enterprise.wechat.enable}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.agent.id", |
||||
"subsection-name": "dynamic-row1-col3", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-alert/enterprise.wechat.enable" |
||||
], |
||||
"if": "${dolphin-alert/enterprise.wechat.enable}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.users", |
||||
"subsection-name": "dynamic-row1-col3", |
||||
"depends-on": [ |
||||
{ |
||||
"configs":[ |
||||
"dolphin-alert/enterprise.wechat.enable" |
||||
], |
||||
"if": "${dolphin-alert/enterprise.wechat.enable}", |
||||
"then": { |
||||
"property_value_attributes": { |
||||
"visible": true |
||||
} |
||||
}, |
||||
"else": { |
||||
"property_value_attributes": { |
||||
"visible": false |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
"widgets": [ |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.type", |
||||
"widget": { |
||||
"type": "combo" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.host", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.port", |
||||
"widget": { |
||||
"type": "text-field", |
||||
"units": [ |
||||
{ |
||||
"unit-name": "int" |
||||
} |
||||
] |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.username", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.database.password", |
||||
"widget": { |
||||
"type": "password" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.user", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphin.group", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-env/dolphinscheduler-env-content", |
||||
"widget": { |
||||
"type": "text-area" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/resource.storage.type", |
||||
"widget": { |
||||
"type": "combo" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/resource.upload.path", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/hdfs.root.user", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/data.store2hdfs.basepath", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.defaultFS", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.s3a.endpoint", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.s3a.access.key", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/fs.s3a.secret.key", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/hadoop.security.authentication.startup.state", |
||||
"widget": { |
||||
"type": "toggle" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/java.security.krb5.conf.path", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/login.user.keytab.username", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/login.user.keytab.path", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-common/kerberos.expire.time", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.enable", |
||||
"widget": { |
||||
"type": "toggle" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.corp.id", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.secret", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.agent.id", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
}, |
||||
{ |
||||
"config": "dolphin-alert/enterprise.wechat.users", |
||||
"widget": { |
||||
"type": "text-field" |
||||
} |
||||
} |
||||
] |
||||
} |
||||
} |
Binary file not shown.
@ -0,0 +1,56 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.apache.dolphinscheduler.api.exceptions; |
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status; |
||||
|
||||
|
||||
/** |
||||
* service exception |
||||
*/ |
||||
public class ServiceException extends RuntimeException { |
||||
|
||||
/** |
||||
* code |
||||
*/ |
||||
private Integer code; |
||||
|
||||
public ServiceException() { |
||||
} |
||||
|
||||
public ServiceException(Status status) { |
||||
super(status.getMsg()); |
||||
this.code = status.getCode(); |
||||
} |
||||
|
||||
public ServiceException(Integer code,String message) { |
||||
super(message); |
||||
this.code = code; |
||||
} |
||||
|
||||
public ServiceException(String message) { |
||||
super(message); |
||||
} |
||||
|
||||
public Integer getCode() { |
||||
return this.code; |
||||
} |
||||
|
||||
public void setCode(Integer code) { |
||||
this.code = code; |
||||
} |
||||
} |
@ -0,0 +1,46 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.apache.dolphinscheduler.api.exceptions; |
||||
|
||||
import org.apache.dolphinscheduler.api.enums.Status; |
||||
import org.junit.Assert; |
||||
import org.junit.Test; |
||||
|
||||
public class ServiceExceptionTest { |
||||
@Test |
||||
public void getCodeTest(){ |
||||
ServiceException serviceException = new ServiceException(); |
||||
Assert.assertNull(serviceException.getCode()); |
||||
|
||||
serviceException = new ServiceException(Status.ALERT_GROUP_EXIST); |
||||
Assert.assertNotNull(serviceException.getCode()); |
||||
|
||||
serviceException = new ServiceException(10012, "alarm group already exists"); |
||||
Assert.assertNotNull(serviceException.getCode()); |
||||
} |
||||
@Test |
||||
public void getMessageTest(){ |
||||
ServiceException serviceException = new ServiceException(); |
||||
Assert.assertNull(serviceException.getMessage()); |
||||
|
||||
serviceException = new ServiceException(Status.ALERT_GROUP_EXIST); |
||||
Assert.assertNotNull(serviceException.getMessage()); |
||||
|
||||
serviceException = new ServiceException(10012, "alarm group already exists"); |
||||
Assert.assertNotNull(serviceException.getMessage()); |
||||
} |
||||
} |
Loading…
Reference in new issue