Skip to content

Commit 42d5b12

Browse files
authored
Merge branch 'apache:dev' into dev
2 parents 76a38b4 + 99d8276 commit 42d5b12

File tree

1,061 files changed

+27069
-14342
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,061 files changed

+27069
-14342
lines changed

Diff for: .asf.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ github:
4545
- Unit Test
4646
- E2E
4747
- Docs
48+
- Frontend Build
4849
- "Mergeable: milestone-label-check"
4950
required_pull_request_reviews:
5051
dismiss_stale_reviews: true
51-
required_approving_review_count: 1
52+
required_approving_review_count: 2

Diff for: .github/CODEOWNERS

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
/dolphinscheduler-registry/ @caishunfeng @ruanwenjun
2424
/dolphinscheduler-api/ @caishunfeng @SbloodyS
2525
/dolphinscheduler-dao/ @caishunfeng @SbloodyS
26-
/dolphinscheduler-dao/src/main/resources/sql/ @zhongjiajie
26+
/dolphinscheduler-dao/src/main/resources/sql/ @EricGao888
2727
/dolphinscheduler-common/ @caishunfeng
2828
/dolphinscheduler-standalone-server/ @caishunfeng
2929
/dolphinscheduler-datasource-plugin/ @caishunfeng
@@ -36,10 +36,10 @@
3636
/dolphinscheduler-extract/ @caishunfeng @ruanwenjun
3737
/dolphinscheduler-spi/ @caishunfeng
3838
/dolphinscheduler-task-plugin/ @caishunfeng @SbloodyS @zhuangchong
39-
/dolphinscheduler-tools/ @caishunfeng @SbloodyS @zhongjiajie @EricGao888
40-
/script/ @caishunfeng @SbloodyS @zhongjiajie @EricGao888
39+
/dolphinscheduler-tools/ @caishunfeng @SbloodyS @EricGao888
40+
/script/ @caishunfeng @SbloodyS @EricGao888
4141
/dolphinscheduler-ui/ @songjianet @Amy0104
42-
/docs/ @zhongjiajie @EricGao888
43-
/licenses/ @zhongjiajie
44-
/images/ @zhongjiajie @EricGao888
42+
/docs/ @EricGao888
43+
/licenses/ @EricGao888
44+
/images/ @EricGao888
4545
/style/ @caishunfeng

Diff for: .github/ISSUE_TEMPLATE/dsip-request.yml

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
name: DSIP
18+
description: Suggest an idea for this project
19+
title: "[DSIP-][Module Name] DSIP title"
20+
labels: [ "DSIP", "Waiting for reply" ]
21+
body:
22+
- type: markdown
23+
attributes:
24+
value: |
25+
For better global communication, Please write in English.
26+
27+
If you feel the description in English is not clear, then you can append description in Chinese, thanks!
28+
29+
- type: checkboxes
30+
attributes:
31+
label: Search before asking
32+
description: >
33+
Please make sure to search in the [DSIP](https://github.com/apache/dolphinscheduler/issues/14102) first
34+
to see whether the same DSIP was created already.
35+
options:
36+
- label: >
37+
I had searched in the [DSIP](https://github.com/apache/dolphinscheduler/issues/14102) and found no
38+
similar DSIP.
39+
required: true
40+
41+
- type: textarea
42+
attributes:
43+
label: Motivation
44+
description: Why you want to do this change?
45+
46+
- type: textarea
47+
attributes:
48+
label: Design Detail
49+
description: Your design.
50+
placeholder: >
51+
It's better to provide a detailed design, such as the design of the interface, the design of the database, etc.
52+
53+
- type: textarea
54+
attributes:
55+
label: Compatibility, Deprecation, and Migration Plan
56+
description: >
57+
If this feature is related to compatibility, deprecation, or migration, please describe it here.
58+
59+
- type: textarea
60+
attributes:
61+
label: Test Plan
62+
description: >
63+
How to test this improvement.
64+
65+
- type: checkboxes
66+
attributes:
67+
label: Code of Conduct
68+
description: |
69+
The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.
70+
options:
71+
- label: |
72+
I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
73+
required: true
74+
75+
- type: markdown
76+
attributes:
77+
value: "Thanks for completing our form!"

Diff for: .github/workflows/backend.yml

+10-6
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,14 @@ jobs:
106106
strategy:
107107
matrix:
108108
case:
109-
- name: cluster-test-mysql
110-
script: .github/workflows/cluster-test/mysql/start-job.sh
111-
- name: cluster-test-postgresql
112-
script: .github/workflows/cluster-test/postgresql/start-job.sh
109+
- name: cluster-test-mysql-with-zookeeper-registry
110+
script: .github/workflows/cluster-test/mysql_with_zookeeper_registry/start-job.sh
111+
- name: cluster-test-mysql-with-mysql-registry
112+
script: .github/workflows/cluster-test/mysql_with_mysql_registry/start-job.sh
113+
- name: cluster-test-postgresql-zookeeper-registry
114+
script: .github/workflows/cluster-test/postgresql_with_zookeeper_registry/start-job.sh
115+
- name: cluster-test-postgresql-with-postgresql-registry
116+
script: .github/workflows/cluster-test/postgresql_with_postgresql_registry/start-job.sh
113117
steps:
114118
- uses: actions/checkout@v2
115119
with:
@@ -149,7 +153,7 @@ jobs:
149153
fail-fast: false
150154
matrix:
151155
db: ["mysql", "postgresql"]
152-
version: ["2.0.9", "3.0.6", "3.1.8"]
156+
version: ["2.0.9", "3.0.6", "3.1.9", "3.2.0"]
153157
steps:
154158
- name: Set up JDK 8
155159
uses: actions/setup-java@v2
@@ -171,7 +175,7 @@ jobs:
171175
echo "DATABASE_VERSION=${VERSION//\./}" >> $GITHUB_ENV
172176
- name: Prepare
173177
run: |
174-
wget https://dlcdn.apache.org/dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -P dolphinscheduler/${{ matrix.version }}
178+
wget https://archive.apache.org/dist/dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -P dolphinscheduler/${{ matrix.version }}
175179
tar -xzf dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -C dolphinscheduler/${{ matrix.version }} --strip-components 1
176180
tar -xzf dolphinscheduler/dev/apache-dolphinscheduler-*-bin.tar.gz -C dolphinscheduler/dev --strip-components 1
177181

Diff for: .github/workflows/cluster-test/mysql/Dockerfile renamed to .github/workflows/cluster-test/mysql_with_mysql_registry/Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ RUN mv /root/apache-dolphinscheduler-*-SNAPSHOT-bin /root/apache-dolphinschedule
2828
ENV DOLPHINSCHEDULER_HOME /root/apache-dolphinscheduler-test-SNAPSHOT-bin
2929

3030
#Setting install.sh
31-
COPY .github/workflows/cluster-test/mysql/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
31+
COPY .github/workflows/cluster-test/mysql_with_mysql_registry/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
3232

3333
#Setting dolphinscheduler_env.sh
34-
COPY .github/workflows/cluster-test/mysql/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
34+
COPY .github/workflows/cluster-test/mysql_with_mysql_registry/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
3535

3636
#Download mysql jar
3737
ENV MYSQL_URL "https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"
@@ -43,6 +43,6 @@ cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME
4343
cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME/tools/libs/$MYSQL_DRIVER
4444

4545
#Deploy
46-
COPY .github/workflows/cluster-test/mysql/deploy.sh /root/deploy.sh
46+
COPY .github/workflows/cluster-test/mysql_with_mysql_registry/deploy.sh /root/deploy.sh
4747

4848
CMD [ "/bin/bash", "/root/deploy.sh" ]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/bin/bash
2+
#
3+
# Licensed to the Apache Software Foundation (ASF) under one or more
4+
# contributor license agreements. See the NOTICE file distributed with
5+
# this work for additional information regarding copyright ownership.
6+
# The ASF licenses this file to You under the Apache License, Version 2.0
7+
# (the "License"); you may not use this file except in compliance with
8+
# the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#
18+
set -euox pipefail
19+
20+
21+
USER=root
22+
23+
#Create database
24+
mysql -hmysql -P3306 -uroot -p123456 -e "CREATE DATABASE IF NOT EXISTS dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
25+
26+
#Sudo
27+
sed -i '$a'$USER' ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
28+
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
29+
30+
#SSH
31+
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
32+
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
33+
chmod 600 ~/.ssh/authorized_keys
34+
service ssh start
35+
36+
#Init schema
37+
/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/upgrade-schema.sh
38+
/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/initialize-jdbc-registry.sh
39+
40+
#Start Cluster
41+
/bin/bash $DOLPHINSCHEDULER_HOME/bin/start-all.sh
42+
43+
#Keep running
44+
tail -f /dev/null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
18+
version: "3"
19+
20+
services:
21+
mysql:
22+
container_name: mysql
23+
image: mysql:5.7.36
24+
command: --default-authentication-plugin=mysql_native_password
25+
restart: always
26+
environment:
27+
MYSQL_ROOT_PASSWORD: 123456
28+
ports:
29+
- "3306:3306"
30+
healthcheck:
31+
test: mysqladmin ping -h 127.0.0.1 -u root --password=$$MYSQL_ROOT_PASSWORD
32+
interval: 5s
33+
timeout: 60s
34+
retries: 120
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
18+
# JAVA_HOME, will use it to start DolphinScheduler server
19+
export JAVA_HOME=${JAVA_HOME:-/opt/java/openjdk}
20+
21+
# Database related configuration, set database type, username and password
22+
export DATABASE=${DATABASE:-mysql}
23+
export SPRING_PROFILES_ACTIVE=${DATABASE}
24+
export SPRING_DATASOURCE_URL="jdbc:mysql://mysql:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
25+
export SPRING_DATASOURCE_USERNAME=root
26+
export SPRING_DATASOURCE_PASSWORD=123456
27+
28+
# DolphinScheduler server related configuration
29+
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
30+
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
31+
32+
# Registry center configuration, determines the type and link of the registry center
33+
export REGISTRY_TYPE=${REGISTRY_TYPE:-jdbc}
34+
export REGISTRY_HIKARI_CONFIG_JDBC_URL="jdbc:mysql://mysql:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
35+
export REGISTRY_HIKARI_CONFIG_USERNAME=root
36+
export REGISTRY_HIKARI_CONFIG_PASSWORD=123456
37+
38+
# Tasks related configurations, need to change the configuration if you use the related tasks.
39+
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
40+
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
41+
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
42+
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
43+
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
44+
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
45+
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
46+
47+
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
48+
49+
export MASTER_RESERVED_MEMORY=0.01
50+
export WORKER_RESERVED_MEMORY=0.01
51+
52+
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
53+
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
54+
#export SPARK_DIST_CLASSPATH=$HADOOP_CLASSPATH:$SPARK_DIST_CLASS_PATH
55+
#export HADOOP_CLIENT_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$HADOOP_CLIENT_OPTS
56+
#export SPARK_SUBMIT_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$SPARK_SUBMIT_OPTS
57+
#export FLINK_ENV_JAVA_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$FLINK_ENV_JAVA_OPTS
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
18+
# ---------------------------------------------------------
19+
# INSTALL MACHINE
20+
# ---------------------------------------------------------
21+
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
22+
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
23+
# mode, just write a pseudo-distributed hostname
24+
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
25+
ips=${ips:-"localhost"}
26+
27+
# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
28+
# modify it if you use different ssh port
29+
sshPort=${sshPort:-"22"}
30+
31+
# A comma separated list of machine hostname or IP would be installed Master server, it
32+
# must be a subset of configuration `ips`.
33+
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
34+
masters=${masters:-"localhost"}
35+
36+
# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
37+
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
38+
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
39+
workers=${workers:-"localhost:default"}
40+
41+
# A comma separated list of machine hostname or IP would be installed Alert server, it
42+
# must be a subset of configuration `ips`.
43+
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
44+
alertServer=${alertServer:-"localhost"}
45+
46+
# A comma separated list of machine hostname or IP would be installed API server, it
47+
# must be a subset of configuration `ips`.
48+
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
49+
apiServers=${apiServers:-"localhost"}
50+
51+
# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
52+
# Do not set this configuration same as the current path (pwd)
53+
installPath=${installPath:-"/root/apache-dolphinscheduler-*-SNAPSHOT-bin"}
54+
55+
# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
56+
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
57+
# to be created by this user
58+
deployUser=${deployUser:-"dolphinscheduler"}

Diff for: .github/workflows/cluster-test/mysql/start-job.sh renamed to .github/workflows/cluster-test/mysql_with_mysql_registry/start-job.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
set -euox pipefail
1919

2020
#Start base service containers
21-
docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-base.yaml up -d
21+
docker-compose -f .github/workflows/cluster-test/mysql_with_mysql_registry/docker-compose-base.yaml up -d
2222

2323
#Build ds mysql cluster image
24-
docker build -t jdk8:ds_mysql_cluster -f .github/workflows/cluster-test/mysql/Dockerfile .
24+
docker build -t jdk8:ds_mysql_cluster -f .github/workflows/cluster-test/mysql_with_mysql_registry/Dockerfile .
2525

2626
#Start ds mysql cluster container
27-
docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml up -d
27+
docker-compose -f .github/workflows/cluster-test/mysql_with_mysql_registry/docker-compose-cluster.yaml up -d
2828

2929
#Running tests
30-
/bin/bash .github/workflows/cluster-test/mysql/running_test.sh
30+
/bin/bash .github/workflows/cluster-test/mysql_with_mysql_registry/running_test.sh
3131

3232
#Cleanup
3333
docker rm -f $(docker ps -aq)

0 commit comments

Comments
 (0)