You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by jo...@apache.org on 2020/04/22 10:43:01 UTC
[incubator-dolphinscheduler] branch dev updated: resolve #2475 Ambari plugin development for the dolphin scheduler in version 2.0.0 … (#2488)
This is an automated email from the ASF dual-hosted git repository.
journey pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 276e3f9 resolve #2475 Ambari plugin development for the dolphin scheduler in version 2.0.0 … (#2488)
276e3f9 is described below
commit 276e3f9a209290b01ebc971913bfd11b6d2121b7
Author: zhangchunyang <18...@163.com>
AuthorDate: Wed Apr 22 18:42:51 2020 +0800
resolve #2475 Ambari plugin development for the dolphin scheduler in version 2.0.0 … (#2488)
* Ambari plugin development for the dolphin scheduler in version 2.0.0 is complete
* Update the Ambari plugin of DS usage documentation
* delete readme whic is not completed
Co-authored-by: zhangchunyang <zh...@analysys.com.cn>
---
.../common-services/DOLPHIN/2.0.0/alerts.json | 164 +++++
.../DOLPHIN/2.0.0/configuration/dolphin-alert.xml | 143 +++++
.../configuration/dolphin-application-api.xml | 87 +++
.../DOLPHIN/2.0.0/configuration/dolphin-common.xml | 158 +++++
.../2.0.0/configuration/dolphin-datasource.xml | 467 +++++++++++++++
.../DOLPHIN/2.0.0/configuration/dolphin-env.xml | 123 ++++
.../DOLPHIN/2.0.0/configuration/dolphin-master.xml | 88 +++
.../DOLPHIN/2.0.0/configuration/dolphin-quartz.xml | 126 ++++
.../DOLPHIN/2.0.0/configuration/dolphin-worker.xml | 76 +++
.../2.0.0/configuration/dolphin-zookeeper.xml | 84 +++
.../common-services/DOLPHIN/2.0.0/metainfo.xml | 137 +++++
.../alerts/alert_dolphin_scheduler_status.py | 124 ++++
.../2.0.0/package/scripts/dolphin_alert_service.py | 61 ++
.../2.0.0/package/scripts/dolphin_api_service.py | 70 +++
.../DOLPHIN/2.0.0/package/scripts/dolphin_env.py | 123 ++++
.../package/scripts/dolphin_logger_service.py | 61 ++
.../package/scripts/dolphin_master_service.py | 61 ++
.../package/scripts/dolphin_worker_service.py | 60 ++
.../DOLPHIN/2.0.0/package/scripts/params.py | 154 +++++
.../DOLPHIN/2.0.0/package/scripts/service_check.py | 31 +
.../DOLPHIN/2.0.0/package/scripts/status_params.py | 23 +
.../2.0.0/package/templates/alert.properties.j2 | 20 +
.../templates/application-api.properties.j2 | 20 +
.../2.0.0/package/templates/common.properties.j2 | 20 +
.../package/templates/datasource.properties.j2 | 20 +
.../2.0.0/package/templates/dolphin-daemon.sh.j2 | 116 ++++
.../2.0.0/package/templates/master.properties.j2 | 20 +
.../2.0.0/package/templates/quartz.properties.j2 | 20 +
.../2.0.0/package/templates/worker.properties.j2 | 20 +
.../package/templates/zookeeper.properties.j2 | 20 +
.../DOLPHIN/2.0.0/quicklinks/quicklinks.json | 26 +
.../DOLPHIN/2.0.0/themes/theme.json | 661 +++++++++++++++++++++
ambari_plugin/readme.pdf | Bin 704750 -> 0 bytes
ambari_plugin/statcks/DOLPHIN/metainfo.xml | 2 +-
34 files changed, 3385 insertions(+), 1 deletion(-)
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/alerts.json b/ambari_plugin/common-services/DOLPHIN/2.0.0/alerts.json
new file mode 100644
index 0000000..385c5d5
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/alerts.json
@@ -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"
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-alert.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-alert.xml
new file mode 100644
index 0000000..5f44a1a
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-alert.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-application-api.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-application-api.xml
new file mode 100644
index 0000000..766c0f4
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-application-api.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-common.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-common.xml
new file mode 100644
index 0000000..439e211
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-common.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-datasource.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-datasource.xml
new file mode 100644
index 0000000..6e50a1b
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-datasource.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-env.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-env.xml
new file mode 100644
index 0000000..8e14716
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-env.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-master.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-master.xml
new file mode 100644
index 0000000..c8eec04
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-master.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-quartz.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-quartz.xml
new file mode 100644
index 0000000..7a0c68b
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-quartz.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-worker.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-worker.xml
new file mode 100644
index 0000000..97beade
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-worker.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-zookeeper.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-zookeeper.xml
new file mode 100644
index 0000000..5882162
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/configuration/dolphin-zookeeper.xml
@@ -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>
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/metainfo.xml b/ambari_plugin/common-services/DOLPHIN/2.0.0/metainfo.xml
new file mode 100644
index 0000000..b3c14e3
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/metainfo.xml
@@ -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>
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py
new file mode 100644
index 0000000..87cc7b4
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/alerts/alert_dolphin_scheduler_status.py
@@ -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
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_alert_service.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_alert_service.py
new file mode 100644
index 0000000..62255a3
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_alert_service.py
@@ -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()
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_api_service.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_api_service.py
new file mode 100644
index 0000000..bdc18fb
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_api_service.py
@@ -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()
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_env.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_env.py
new file mode 100644
index 0000000..1661d76
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_env.py
@@ -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
+ )
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_logger_service.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_logger_service.py
new file mode 100644
index 0000000..f1c19bd
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_logger_service.py
@@ -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()
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_master_service.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_master_service.py
new file mode 100644
index 0000000..6ee7ecf
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_master_service.py
@@ -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()
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_worker_service.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_worker_service.py
new file mode 100644
index 0000000..2d145ee
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/dolphin_worker_service.py
@@ -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()
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/params.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/params.py
new file mode 100644
index 0000000..b09b258
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/params.py
@@ -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'])
+
+
+
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/service_check.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/service_check.py
new file mode 100644
index 0000000..0e12f69
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/service_check.py
@@ -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()
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/status_params.py b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/status_params.py
new file mode 100644
index 0000000..24b2c8b
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/scripts/status_params.py
@@ -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/"
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/alert.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/alert.properties.j2
new file mode 100644
index 0000000..73840b8
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/alert.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/application-api.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/application-api.properties.j2
new file mode 100644
index 0000000..7011800
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/application-api.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/common.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/common.properties.j2
new file mode 100644
index 0000000..2220c4e
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/common.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/datasource.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/datasource.properties.j2
new file mode 100644
index 0000000..40aed83
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/datasource.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/dolphin-daemon.sh.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/dolphin-daemon.sh.j2
new file mode 100644
index 0000000..0802b74
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/dolphin-daemon.sh.j2
@@ -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."
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/master.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/master.properties.j2
new file mode 100644
index 0000000..d9b85e1
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/master.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/quartz.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/quartz.properties.j2
new file mode 100644
index 0000000..e027a26
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/quartz.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/worker.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/worker.properties.j2
new file mode 100644
index 0000000..a008b74
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/worker.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/zookeeper.properties.j2 b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/zookeeper.properties.j2
new file mode 100644
index 0000000..9eb14ea
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/package/templates/zookeeper.properties.j2
@@ -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 %}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/quicklinks/quicklinks.json b/ambari_plugin/common-services/DOLPHIN/2.0.0/quicklinks/quicklinks.json
new file mode 100755
index 0000000..8753004
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/quicklinks/quicklinks.json
@@ -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"
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ambari_plugin/common-services/DOLPHIN/2.0.0/themes/theme.json b/ambari_plugin/common-services/DOLPHIN/2.0.0/themes/theme.json
new file mode 100644
index 0000000..953e232
--- /dev/null
+++ b/ambari_plugin/common-services/DOLPHIN/2.0.0/themes/theme.json
@@ -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"
+ }
+ }
+ ]
+ }
+}
diff --git a/ambari_plugin/readme.pdf b/ambari_plugin/readme.pdf
deleted file mode 100644
index 1209375..0000000
Binary files a/ambari_plugin/readme.pdf and /dev/null differ
diff --git a/ambari_plugin/statcks/DOLPHIN/metainfo.xml b/ambari_plugin/statcks/DOLPHIN/metainfo.xml
index c41db5f..3af7f38 100755
--- a/ambari_plugin/statcks/DOLPHIN/metainfo.xml
+++ b/ambari_plugin/statcks/DOLPHIN/metainfo.xml
@@ -20,7 +20,7 @@
<services>
<service>
<name>DOLPHIN</name>
- <extends>common-services/DOLPHIN/1.2.1</extends>
+ <extends>common-services/DOLPHIN/2.0.0</extends>
</service>
</services>
</metainfo>
\ No newline at end of file