You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/07/26 12:27:09 UTC
[shardingsphere-elasticjob] branch master updated: move
cloud-scheduler assembly to distribution module
This is an automated email from the ASF dual-hosted git repository.
zhangyonglun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new fdb4435 move cloud-scheduler assembly to distribution module
new 2902866 Merge pull request #1275 from tuohai666/master
fdb4435 is described below
commit fdb443581ab27efcd115a0ba76d59058c12f54eb
Author: tuohai666 <zh...@apache.org>
AuthorDate: Sun Jul 26 20:12:33 2020 +0800
move cloud-scheduler assembly to distribution module
---
.../pom.xml | 219 +++++++++++++++++++++
...sticjob-cloud-scheduler-binary-distribution.xml | 54 +++++
.../src/main/resources/application.properties | 23 +++
.../src/main/resources/bin/dcos.sh | 27 +++
.../src/main/resources/bin/start.sh | 35 ++++
.../conf/elasticjob-cloud-scheduler.properties | 62 ++++++
.../src/main/resources/logback.xml | 75 +++++++
7 files changed, 495 insertions(+)
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/pom.xml b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/pom.xml
new file mode 100644
index 0000000..a036445
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/pom.xml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.shardingsphere.elasticjob</groupId>
+ <artifactId>elasticjob-distribution</artifactId>
+ <version>3.0.0-alpha-SNAPSHOT</version>
+ </parent>
+ <artifactId>elasticjob-cloud-scheduler-distribution</artifactId>
+ <packaging>pom</packaging>
+ <name>${project.artifactId}</name>
+
+ <properties>
+ <springframework.version>5.2.7.RELEASE</springframework.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere.elasticjob</groupId>
+ <artifactId>elasticjob-infra-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.elasticjob</groupId>
+ <artifactId>elasticjob-simple-executor</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.elasticjob</groupId>
+ <artifactId>elasticjob-dataflow-executor</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.elasticjob</groupId>
+ <artifactId>elasticjob-script-executor</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere.elasticjob</groupId>
+ <artifactId>elasticjob-cloud-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${springframework.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${springframework.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>${springframework.version}</version>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <artifactId>spring-web</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-context</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.12</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>4.4.13</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.mesos</groupId>
+ <artifactId>mesos</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.netflix.fenzo</groupId>
+ <artifactId>fenzo-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.curator</groupId>
+ <artifactId>curator-test</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/</directory>
+ <excludes>
+ <exclude>resources/bin/*</exclude>
+ <exclude>assembly/*</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>resources/conf/*.properties</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>
+ src/main/assembly/elasticjob-cloud-scheduler-binary-distribution.xml
+ </descriptor>
+ </descriptors>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/assembly/elasticjob-cloud-scheduler-binary-distribution.xml b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/assembly/elasticjob-cloud-scheduler-binary-distribution.xml
new file mode 100644
index 0000000..cb089b6
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/assembly/elasticjob-cloud-scheduler-binary-distribution.xml
@@ -0,0 +1,54 @@
+<!--
+ ~ 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.
+ -->
+
+<assembly>
+ <id>cloud-scheduler-bin</id>
+ <formats>
+ <format>tar.gz</format>
+ </formats>
+ <fileSets>
+ <fileSet>
+ <directory>src/main/resources/conf</directory>
+ <outputDirectory>conf</outputDirectory>
+ <directoryMode>0755</directoryMode>
+ <fileMode>0644</fileMode>
+ </fileSet>
+ <fileSet>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>application.properties</include>
+ <include>logback.xml</include>
+ </includes>
+ <outputDirectory>conf</outputDirectory>
+ <directoryMode>0755</directoryMode>
+ <fileMode>0644</fileMode>
+ </fileSet>
+ <fileSet>
+ <directory>src/main/resources/bin</directory>
+ <outputDirectory>bin</outputDirectory>
+ <directoryMode>0755</directoryMode>
+ <fileMode>0755</fileMode>
+ </fileSet>
+ </fileSets>
+
+ <dependencySets>
+ <dependencySet>
+ <outputDirectory>lib</outputDirectory>
+ <directoryMode>0755</directoryMode>
+ </dependencySet>
+ </dependencySets>
+</assembly>
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/application.properties b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/application.properties
new file mode 100644
index 0000000..39c6400
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/application.properties
@@ -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.
+#
+# Default web server port
+server.port=8899
+# Console login account
+auth.root_username=root
+auth.root_password=root
+auth.guest_username=guest
+auth.guest_password=guest
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/bin/dcos.sh b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/bin/dcos.sh
new file mode 100644
index 0000000..1758ef8
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/bin/dcos.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+#
+# 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.
+#
+
+cd `dirname $0`
+cd ..
+DEPLOY_DIR=`pwd`
+LIB_DIR=${DEPLOY_DIR}/lib/*
+CONTAINER_MAIN=org.apache.shardingsphere.elasticjob.cloud.scheduler.Bootstrap
+JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.library.path=/usr/local/lib:/usr/lib:/usr/lib64"
+
+java ${JAVA_OPTS} -classpath ${LIB_DIR}:. ${CONTAINER_MAIN}
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/bin/start.sh b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/bin/start.sh
new file mode 100644
index 0000000..bc2ffea
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/bin/start.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+#
+# 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.
+#
+
+cd `dirname $0`
+cd ..
+DEPLOY_DIR=`pwd`
+CONF_DIR=${DEPLOY_DIR}/conf
+LIB_DIR=${DEPLOY_DIR}/lib/*
+CONTAINER_MAIN=org.apache.shardingsphere.elasticjob.cloud.scheduler.Bootstrap
+JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.library.path=/usr/local/lib:/usr/lib:/usr/lib64"
+
+source ${CONF_DIR}/elasticjob-cloud-scheduler.properties
+if [ ${hostname} = "" ] || [ ${hostname} = "127.0.0.1" ] || [ ${hostname} = "localhost" ]; then
+ echo "Please config hostname in conf/elasticjob-cloud-scheduler.properties with a routable IP address."
+ exit;
+fi
+export LIBPROCESS_IP=${hostname}
+
+java ${JAVA_OPTS} -classpath ${CONF_DIR}:${LIB_DIR}:. ${CONTAINER_MAIN}
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/conf/elasticjob-cloud-scheduler.properties b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/conf/elasticjob-cloud-scheduler.properties
new file mode 100644
index 0000000..7e17d93
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/conf/elasticjob-cloud-scheduler.properties
@@ -0,0 +1,62 @@
+#
+# 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.
+#
+
+# Routable IP address
+hostname=127.0.0.1
+
+# Username for mesos framework
+user=
+
+# Mesos zookeeper address
+mesos_url=zk://127.0.0.1:2181/mesos
+
+# Role for mesos framework
+
+#mesos_role=
+
+# ElasticJob-Cloud's zookeeper address
+zk_servers=127.0.0.1:2181
+
+# ElasticJob-Cloud's zookeeper namespace
+zk_namespace=elasticjob-cloud
+
+# ElasticJob-Cloud's zookeeper digest
+zk_digest=
+
+# Job rest API port
+http_port=8899
+
+# Max size of job accumulated
+job_state_queue_size=10000
+
+# Event trace rdb config
+
+#event_trace_rdb_driver=com.mysql.jdbc.Driver
+
+#event_trace_rdb_url=jdbc:mysql://localhost:3306/elastic_job_cloud_log
+
+#event_trace_rdb_username=root
+
+#event_trace_rdb_password=
+
+# Task reconciliation interval
+
+#reconcile_interval_minutes=-1
+
+# Enable/Disable mesos partition aware feature
+
+# enable_partition_aware=false
diff --git a/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/logback.xml b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/logback.xml
new file mode 100644
index 0000000..3a56e58
--- /dev/null
+++ b/elasticjob-distribution/elasticjob-cloud-scheduler-distribution/src/main/resources/logback.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="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.
+ -->
+
+<configuration>
+ <property name="log.directory" value="logs/" />
+ <property name="log.context.name" value="elasticjob-cloud-scheduler" />
+ <property name="log.charset" value="UTF-8" />
+ <property name="log.maxHistory" value="30" />
+ <property name="log.pattern" value="[%-5level] %date --%thread-- [%logger] %msg %n" />
+ <property name="log.error.log.level" value="WARN" />
+ <property name="log.async.queue.size" value="1024" />
+
+ <contextName>${log.context.name}</contextName>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder charset="${log.charset}">
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${log.directory}${log.context.name}-log.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <maxHistory>${log.maxHistory}</maxHistory>
+ </rollingPolicy>
+ <encoder charset="${log.charset}">
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- Asynchronized log, for FILE only -->
+ <appender name ="ASYNC_FILE" class= "ch.qos.logback.classic.AsyncAppender">
+ <!-- Don't discard log, logback will discard TRACE, DEBUG, INFO log when queue 80% capacity reached by default. -->
+ <discardingThreshold >0</discardingThreshold>
+ <queueSize>${log.async.queue.size}</queueSize>
+ <appender-ref ref = "FILE"/>
+ </appender>
+
+ <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>${log.error.log.level}</level>
+ </filter>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${log.directory}${log.context.name}-error.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <maxHistory>${log.maxHistory}</maxHistory>
+ </rollingPolicy>
+ <encoder charset="${log.charset}">
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <root>
+ <level value="INFO" />
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="ASYNC_FILE" />
+ <appender-ref ref="ERROR" />
+ </root>
+
+ <logger name="org.apache.zookeeper" level="WARN" />
+ <logger name="org.apache.curator" level="WARN" />
+</configuration>