Compare commits
228 Commits
dev
...
3.2.0-rele
| Author | SHA1 | Date |
|---|---|---|
|
|
6dbd235a88 | |
|
|
e648d6d2ad | |
|
|
f64b254809 | |
|
|
ef003c6211 | |
|
|
6d7dbe6733 | |
|
|
a8272b2606 | |
|
|
33305532bf | |
|
|
7b43c66811 | |
|
|
a1a041082d | |
|
|
9190f23133 | |
|
|
512f94070a | |
|
|
f2c68bc97a | |
|
|
c2dd874c82 | |
|
|
333866489a | |
|
|
62275e932d | |
|
|
cb80df4570 | |
|
|
2fb488f4ac | |
|
|
6b36354ba3 | |
|
|
06a555e494 | |
|
|
23f6494ad6 | |
|
|
3ef25e50cc | |
|
|
87d6092ef9 | |
|
|
60b9abba18 | |
|
|
fb7fab0ecd | |
|
|
4eae5e224f | |
|
|
6d1e9d37c4 | |
|
|
12baee69d8 | |
|
|
8097d74663 | |
|
|
3b3e2f1712 | |
|
|
b77d5c4b88 | |
|
|
06e5b21b4f | |
|
|
82926f1850 | |
|
|
e2c8815457 | |
|
|
e71ae0da55 | |
|
|
eb9a6ab4ce | |
|
|
5270cc62a4 | |
|
|
6c1d14dcfe | |
|
|
fd00bb605a | |
|
|
121bb3d854 | |
|
|
984eebd0c4 | |
|
|
3a749d0109 | |
|
|
ce935c5c99 | |
|
|
fdc2421817 | |
|
|
9d4f9a7457 | |
|
|
baf7b5ef45 | |
|
|
ab306cedd5 | |
|
|
8c451a0e19 | |
|
|
fb792849e1 | |
|
|
793b9a8ea0 | |
|
|
07c52903d9 | |
|
|
f43854e93f | |
|
|
99a43640b2 | |
|
|
3a4f28546e | |
|
|
f3affa0d75 | |
|
|
5d9d6061fd | |
|
|
cdc32b3dc3 | |
|
|
22eac768da | |
|
|
9094423635 | |
|
|
477a8bdf42 | |
|
|
47e1bddd4d | |
|
|
3e0569b4fa | |
|
|
0cb0e76ed3 | |
|
|
6617a00b9b | |
|
|
8e4d022692 | |
|
|
c49d58300d | |
|
|
988aaf880c | |
|
|
3bc82e7973 | |
|
|
8905f75b02 | |
|
|
82f75623a8 | |
|
|
8e16834836 | |
|
|
ad9d04c974 | |
|
|
29791122aa | |
|
|
49a984b368 | |
|
|
f157c7bbd1 | |
|
|
fdfe0a5c65 | |
|
|
24bab934e0 | |
|
|
ce5c8f530b | |
|
|
3499c25f84 | |
|
|
f3fe454c67 | |
|
|
0c68761096 | |
|
|
df955e3919 | |
|
|
9af39ea893 | |
|
|
5fb947659b | |
|
|
bddde77d98 | |
|
|
92146ddc2d | |
|
|
5052720fd8 | |
|
|
4398ab9136 | |
|
|
40fb3555b9 | |
|
|
5ab3f53297 | |
|
|
f65dab2e21 | |
|
|
5f48b01591 | |
|
|
8bdaa0229a | |
|
|
85fa99c5f8 | |
|
|
9556a7c463 | |
|
|
e13466b343 | |
|
|
775b276129 | |
|
|
c927d657f3 | |
|
|
f666fd34f9 | |
|
|
1bc266a202 | |
|
|
24857751ed | |
|
|
023b8fb912 | |
|
|
e6e012091d | |
|
|
19ddae177e | |
|
|
50054411c3 | |
|
|
c047e2350c | |
|
|
e84f3024b0 | |
|
|
9c1dcd3d21 | |
|
|
284fd2a854 | |
|
|
f24e700419 | |
|
|
b6313e1cc7 | |
|
|
03b19ebf2d | |
|
|
bd48156b99 | |
|
|
10157e1c69 | |
|
|
64537405b7 | |
|
|
3ddff32e92 | |
|
|
745a81d318 | |
|
|
d74d2bfa0d | |
|
|
e677a3816a | |
|
|
91be4781d3 | |
|
|
12511c4e0e | |
|
|
8b922675c9 | |
|
|
1f9ca9c79a | |
|
|
9057762ccb | |
|
|
436c8e251e | |
|
|
c6c52a29a6 | |
|
|
d2ac5999c6 | |
|
|
6966ea6901 | |
|
|
714bf768d5 | |
|
|
749cf06793 | |
|
|
e3e9b13f1e | |
|
|
4508ca302c | |
|
|
49b3897a87 | |
|
|
5d5d6fb18f | |
|
|
c7cac26468 | |
|
|
55b94db3c5 | |
|
|
adb106f47c | |
|
|
65de246b11 | |
|
|
eea5c47e85 | |
|
|
946d173e7b | |
|
|
2856b676b2 | |
|
|
476f2d888b | |
|
|
91e9cc25f4 | |
|
|
7070be1946 | |
|
|
2818294ac7 | |
|
|
4967aedd5d | |
|
|
c0b2b1c0e3 | |
|
|
d414f2631b | |
|
|
6795554834 | |
|
|
fd8910fcfc | |
|
|
4cfb7449d7 | |
|
|
ded332c0e1 | |
|
|
e801e5dd57 | |
|
|
d9da9070fc | |
|
|
3add3f1dbb | |
|
|
20c30dbb2c | |
|
|
0878578255 | |
|
|
3d6a06eded | |
|
|
470dc4cf02 | |
|
|
af04471a25 | |
|
|
6cd07cffa1 | |
|
|
a99596a2df | |
|
|
5ce72b3455 | |
|
|
d3419fec39 | |
|
|
6a38b0e6ed | |
|
|
77f2a859d3 | |
|
|
9d70486a18 | |
|
|
01a2f734c2 | |
|
|
e0341f7c85 | |
|
|
e347b7c1c7 | |
|
|
09e0a11f21 | |
|
|
57c964fe39 | |
|
|
c055a2cd15 | |
|
|
3d6e145202 | |
|
|
223f091473 | |
|
|
1be2dc1a38 | |
|
|
8b5e061bc2 | |
|
|
da79a64316 | |
|
|
5d04238b13 | |
|
|
28c2ec8e4b | |
|
|
5d263b563f | |
|
|
bb48541feb | |
|
|
63441d1222 | |
|
|
774d61ddd7 | |
|
|
b0a7e15e3e | |
|
|
d1026bc4bd | |
|
|
6271c77c04 | |
|
|
5b84de8b33 | |
|
|
438d370051 | |
|
|
0188921ca4 | |
|
|
6c3bb81752 | |
|
|
75dedf46dd | |
|
|
d46c0d8eae | |
|
|
397261f7c9 | |
|
|
e87db4d87f | |
|
|
361219f9ee | |
|
|
f800542952 | |
|
|
30171c4182 | |
|
|
299c2e2b75 | |
|
|
a3e059443b | |
|
|
92b94dd096 | |
|
|
0c58733927 | |
|
|
f46d07de45 | |
|
|
d5f90f5315 | |
|
|
2cb8186915 | |
|
|
57f3c89dd2 | |
|
|
682e881ea7 | |
|
|
4be93325b0 | |
|
|
b2ee8d5e6f | |
|
|
fdfcdd5bf6 | |
|
|
1f8a77d79d | |
|
|
b659f1af7a | |
|
|
1168fabf13 | |
|
|
484b588670 | |
|
|
95e2279bfb | |
|
|
f15b1284a5 | |
|
|
27eeb3aada | |
|
|
dc508f075c | |
|
|
bbd7c2a146 | |
|
|
2634cf6350 | |
|
|
a3b37edca8 | |
|
|
2fe71b5eeb | |
|
|
010ea7ac6b | |
|
|
cd486aa652 | |
|
|
7a310f442a | |
|
|
082b617b67 | |
|
|
7dc236730a | |
|
|
cd5c7dae13 | |
|
|
661522af56 |
|
|
@ -30,6 +30,7 @@ github:
|
||||||
- workflow-schedule
|
- workflow-schedule
|
||||||
- powerful-data-pipelines
|
- powerful-data-pipelines
|
||||||
- data-pipelines
|
- data-pipelines
|
||||||
|
dependabot_updates: false
|
||||||
enabled_merge_buttons:
|
enabled_merge_buttons:
|
||||||
squash: true
|
squash: true
|
||||||
merge: false
|
merge: false
|
||||||
|
|
@ -37,6 +38,8 @@ github:
|
||||||
protected_branches:
|
protected_branches:
|
||||||
dev:
|
dev:
|
||||||
required_status_checks:
|
required_status_checks:
|
||||||
|
# strict means "Require branches to be up to date before merging".
|
||||||
|
strict: true
|
||||||
contexts:
|
contexts:
|
||||||
- Build
|
- Build
|
||||||
- Unit Test
|
- Unit Test
|
||||||
|
|
|
||||||
|
|
@ -15,20 +15,20 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
/.github/ @kezhenxu94 @SbloodyS
|
/.github/ @SbloodyS
|
||||||
/deploy/ @kezhenxu94 @caishunfeng
|
/deploy/ @caishunfeng
|
||||||
/dolphinscheduler-alert/ @kezhenxu94 @caishunfeng
|
/dolphinscheduler-alert/ @caishunfeng
|
||||||
/dolphinscheduler-e2e/ @kezhenxu94 @SbloodyS
|
/dolphinscheduler-e2e/ @SbloodyS
|
||||||
/dolphinscheduler-api-test/ @SbloodyS
|
/dolphinscheduler-api-test/ @SbloodyS
|
||||||
/dolphinscheduler-registry/ @kezhenxu94 @caishunfeng @ruanwenjun
|
/dolphinscheduler-registry/ @caishunfeng @ruanwenjun
|
||||||
/dolphinscheduler-api/ @caishunfeng @SbloodyS
|
/dolphinscheduler-api/ @caishunfeng @SbloodyS
|
||||||
/dolphinscheduler-dao/ @caishunfeng @SbloodyS
|
/dolphinscheduler-dao/ @caishunfeng @SbloodyS
|
||||||
/dolphinscheduler-dao/src/main/resources/sql/ @zhongjiajie
|
/dolphinscheduler-dao/src/main/resources/sql/ @zhongjiajie
|
||||||
/dolphinscheduler-common/ @caishunfeng
|
/dolphinscheduler-common/ @caishunfeng
|
||||||
/dolphinscheduler-standalone-server/ @kezhenxu94 @caishunfeng
|
/dolphinscheduler-standalone-server/ @caishunfeng
|
||||||
/dolphinscheduler-datasource-plugin/ @caishunfeng
|
/dolphinscheduler-datasource-plugin/ @caishunfeng
|
||||||
/dolphinscheduler-dist/ @kezhenxu94 @caishunfeng
|
/dolphinscheduler-dist/ @caishunfeng
|
||||||
/dolphinscheduler-meter/ @caishunfeng @kezhenxu94 @ruanwenjun @EricGao888
|
/dolphinscheduler-meter/ @caishunfeng @ruanwenjun @EricGao888
|
||||||
/dolphinscheduler-scheduler-plugin/ @caishunfeng
|
/dolphinscheduler-scheduler-plugin/ @caishunfeng
|
||||||
/dolphinscheduler-master/ @caishunfeng @SbloodyS @ruanwenjun
|
/dolphinscheduler-master/ @caishunfeng @SbloodyS @ruanwenjun
|
||||||
/dolphinscheduler-worker/ @caishunfeng @SbloodyS @ruanwenjun
|
/dolphinscheduler-worker/ @caishunfeng @SbloodyS @ruanwenjun
|
||||||
|
|
@ -40,9 +40,6 @@
|
||||||
/script/ @caishunfeng @SbloodyS @zhongjiajie @EricGao888
|
/script/ @caishunfeng @SbloodyS @zhongjiajie @EricGao888
|
||||||
/dolphinscheduler-ui/ @songjianet @Amy0104
|
/dolphinscheduler-ui/ @songjianet @Amy0104
|
||||||
/docs/ @zhongjiajie @EricGao888
|
/docs/ @zhongjiajie @EricGao888
|
||||||
/licenses/ @kezhenxu94 @zhongjiajie
|
/licenses/ @zhongjiajie
|
||||||
/images/ @zhongjiajie @EricGao888
|
/images/ @zhongjiajie @EricGao888
|
||||||
/style/ @caishunfeng
|
/style/ @caishunfeng
|
||||||
|
|
||||||
# All pom files
|
|
||||||
pom.xml @kezhenxu94
|
|
||||||
|
|
|
||||||
|
|
@ -100,8 +100,7 @@ body:
|
||||||
options:
|
options:
|
||||||
- dev
|
- dev
|
||||||
- 3.1.x
|
- 3.1.x
|
||||||
- 3.0.x
|
- 3.2.x
|
||||||
- 2.0.x
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,8 @@ mergeable:
|
||||||
- do: label
|
- do: label
|
||||||
and:
|
and:
|
||||||
- must_include:
|
- must_include:
|
||||||
regex: 'feature|bug|improvement|document|chore'
|
regex: 'feature|bug|improvement|document|chore|revert'
|
||||||
message: 'Label must include one of the following: `feature`, `bug`, `improvement`, `document`, `chore`'
|
message: 'Label must include one of the following: `feature`, `bug`, `improvement`, `document`, `chore`, `revert`'
|
||||||
- must_include:
|
- must_include:
|
||||||
regex: '\d+\.\d+\.\w+'
|
regex: 'ready-to-merge'
|
||||||
message: 'Label must include one or more version numbers.'
|
message: 'Please check if there are PRs that already have a `ready-to-merge` label and can be merged, if exists please merge them first.'
|
||||||
|
|
|
||||||
|
|
@ -60,16 +60,15 @@ jobs:
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-api-test
|
||||||
restore-keys: ${{ runner.os }}-maven-
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
- name: Build Image
|
- name: Build Image
|
||||||
run: |
|
run: |
|
||||||
./mvnw -B clean install \
|
./mvnw -B clean install \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dcheckstyle.skip=true \
|
-Dspotless.skip=true \
|
||||||
-Pdocker,release -Ddocker.tag=ci \
|
-Pdocker,release -Ddocker.tag=ci
|
||||||
-pl dolphinscheduler-standalone-server -am
|
|
||||||
- name: Export Docker Images
|
- name: Export Docker Images
|
||||||
run: |
|
run: |
|
||||||
docker save apache/dolphinscheduler-standalone-server:ci -o /tmp/standalone-image.tar \
|
docker save apache/dolphinscheduler-standalone-server:ci -o /tmp/standalone-image.tar \
|
||||||
|
|
@ -92,6 +91,16 @@ jobs:
|
||||||
class: org.apache.dolphinscheduler.api.test.cases.TenantAPITest
|
class: org.apache.dolphinscheduler.api.test.cases.TenantAPITest
|
||||||
- name: WorkerGroup
|
- name: WorkerGroup
|
||||||
class: org.apache.dolphinscheduler.api.test.cases.WorkerGroupAPITest
|
class: org.apache.dolphinscheduler.api.test.cases.WorkerGroupAPITest
|
||||||
|
- name: Project
|
||||||
|
class: org.apache.dolphinscheduler.api.test.cases.ProjectAPITest
|
||||||
|
- name: Workflow
|
||||||
|
class: org.apache.dolphinscheduler.api.test.cases.ProcessDefinitionAPITest
|
||||||
|
- name: Scheduler
|
||||||
|
class: org.apache.dolphinscheduler.api.test.cases.SchedulerAPITest
|
||||||
|
- name: Executor
|
||||||
|
class: org.apache.dolphinscheduler.api.test.cases.ExecutorAPITest
|
||||||
|
- name: ProcessInstance
|
||||||
|
class: org.apache.dolphinscheduler.api.test.cases.ProcessInstanceAPITest
|
||||||
env:
|
env:
|
||||||
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
|
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -102,7 +111,7 @@ jobs:
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-api-test
|
||||||
restore-keys: ${{ runner.os }}-maven-
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
- uses: actions/download-artifact@v2
|
- uses: actions/download-artifact@v2
|
||||||
name: Download Docker Images
|
name: Download Docker Images
|
||||||
|
|
@ -116,7 +125,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
./mvnw -B -f dolphinscheduler-api-test/pom.xml -am \
|
./mvnw -B -f dolphinscheduler-api-test/pom.xml -am \
|
||||||
-DfailIfNoTests=false \
|
-DfailIfNoTests=false \
|
||||||
-Dcheckstyle.skip=false \
|
-Dspotless.skip=false \
|
||||||
-Dtest=${{ matrix.case.class }} test
|
-Dtest=${{ matrix.case.class }} test
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
if: always()
|
if: always()
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
not-ignore: ${{ steps.filter.outputs.not-ignore }}
|
not-ignore: ${{ steps.filter.outputs.not-ignore }}
|
||||||
|
db-schema: ${{ steps.filter.outputs.db-schema }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
|
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
|
||||||
|
|
@ -50,6 +51,8 @@ jobs:
|
||||||
filters: |
|
filters: |
|
||||||
not-ignore:
|
not-ignore:
|
||||||
- '!(docs/**)'
|
- '!(docs/**)'
|
||||||
|
db-schema:
|
||||||
|
- 'dolphinscheduler-dao/src/main/resources/sql/**'
|
||||||
build:
|
build:
|
||||||
name: Backend-Build
|
name: Backend-Build
|
||||||
needs: paths-filter
|
needs: paths-filter
|
||||||
|
|
@ -75,13 +78,14 @@ jobs:
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-backend
|
||||||
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
- name: Build and Package on ${{ matrix.java }}
|
- name: Build and Package on ${{ matrix.java }}
|
||||||
run: |
|
run: |
|
||||||
./mvnw -B clean install \
|
./mvnw -B clean install \
|
||||||
-Prelease,docker \
|
-Prelease \
|
||||||
-Dmaven.test.skip=true \
|
-Dmaven.test.skip=true \
|
||||||
-Dcheckstyle.skip=true \
|
-Dspotless.skip=true \
|
||||||
-Dhttp.keepAlive=false \
|
-Dhttp.keepAlive=false \
|
||||||
-Dmaven.wagon.http.pool=false \
|
-Dmaven.wagon.http.pool=false \
|
||||||
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
||||||
|
|
@ -119,20 +123,151 @@ jobs:
|
||||||
- name: Running cluster test
|
- name: Running cluster test
|
||||||
run: |
|
run: |
|
||||||
/bin/bash ${{ matrix.case.script }}
|
/bin/bash ${{ matrix.case.script }}
|
||||||
|
schema-check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ (needs.paths-filter.outputs.db-schema == 'true') || (github.event_name == 'push') }}
|
||||||
|
timeout-minutes: 20
|
||||||
|
needs: build
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:5.7
|
||||||
|
env:
|
||||||
|
MYSQL_ROOT_PASSWORD: mysql
|
||||||
|
MYSQL_DATABASE: dolphinscheduler_dev
|
||||||
|
ports:
|
||||||
|
- 3306:3306
|
||||||
|
options: --name=mysql --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||||
|
postgres:
|
||||||
|
image: postgres:15
|
||||||
|
env:
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
POSTGRES_DB: dolphinscheduler_dev
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
options: --name=postgres --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=5
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
db: ["mysql", "postgresql"]
|
||||||
|
version: ["2.0.9", "3.0.6", "3.1.8"]
|
||||||
|
steps:
|
||||||
|
- name: Set up JDK 8
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
java-version: 8
|
||||||
|
distribution: 'adopt'
|
||||||
|
- name: Install Atlas and Create Dir
|
||||||
|
run: |
|
||||||
|
mkdir -p dolphinscheduler/dev dolphinscheduler/${{ matrix.version }}
|
||||||
|
curl -sSf https://atlasgo.sh | sh
|
||||||
|
- name: Download Tarball
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: binary-package-8
|
||||||
|
path: dolphinscheduler/dev
|
||||||
|
- name: Set Env
|
||||||
|
run: |
|
||||||
|
VERSION=${{ matrix.version }}
|
||||||
|
echo "DATABASE_VERSION=${VERSION//\./}" >> $GITHUB_ENV
|
||||||
|
- name: Prepare
|
||||||
|
run: |
|
||||||
|
wget https://dlcdn.apache.org/dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -P dolphinscheduler/${{ matrix.version }}
|
||||||
|
tar -xzf dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -C dolphinscheduler/${{ matrix.version }} --strip-components 1
|
||||||
|
tar -xzf dolphinscheduler/dev/apache-dolphinscheduler-*-bin.tar.gz -C dolphinscheduler/dev --strip-components 1
|
||||||
|
|
||||||
|
if [[ ${{ matrix.db }} == "mysql" ]]; then
|
||||||
|
MYSQL_JDBC_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"
|
||||||
|
MYSQL_JDBC_JAR="mysql-connector-java-8.0.16.jar"
|
||||||
|
wget ${MYSQL_JDBC_URL} -O /tmp/${MYSQL_JDBC_JAR}
|
||||||
|
for base_dir in dolphinscheduler/dev dolphinscheduler/${{ matrix.version }}; do
|
||||||
|
if [[ $base_dir == *"dolphinscheduler/2"* ]]; then
|
||||||
|
cp /tmp/${MYSQL_JDBC_JAR} ${base_dir}/lib
|
||||||
|
else
|
||||||
|
for d in alert-server api-server master-server worker-server tools; do
|
||||||
|
cp /tmp/${MYSQL_JDBC_JAR} ${base_dir}/${d}/libs
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
docker exec -i mysql mysql -uroot -pmysql -e "create database dolphinscheduler_${{ env.DATABASE_VERSION }}";
|
||||||
|
else
|
||||||
|
docker exec -i postgres psql -U postgres -c "create database dolphinscheduler_${{ env.DATABASE_VERSION }};"
|
||||||
|
fi
|
||||||
|
- name: Check
|
||||||
|
run: |
|
||||||
|
if [[ $DATABASE_VERSION -lt 300 ]]; then
|
||||||
|
chmod +x dolphinscheduler/dev/tools/bin/upgrade-schema.sh dolphinscheduler/${{ matrix.version }}/script/create-dolphinscheduler.sh
|
||||||
|
else
|
||||||
|
chmod +x dolphinscheduler/dev/tools/bin/upgrade-schema.sh dolphinscheduler/${{ matrix.version }}/tools/bin/upgrade-schema.sh
|
||||||
|
fi
|
||||||
|
if [[ ${{ matrix.db }} == "mysql" ]]; then
|
||||||
|
export DATABASE="mysql"
|
||||||
|
export SPRING_DATASOURCE_DRIVER_CLASS_NAME="com.mysql.cj.jdbc.Driver"
|
||||||
|
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler_dev?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false"
|
||||||
|
export SPRING_DATASOURCE_USERNAME="root"
|
||||||
|
export SPRING_DATASOURCE_PASSWORD="mysql"
|
||||||
|
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
|
||||||
|
|
||||||
|
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler_${{ env.DATABASE_VERSION }}?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false"
|
||||||
|
if [[ $DATABASE_VERSION -lt 300 ]]; then
|
||||||
|
bash dolphinscheduler/${{ matrix.version }}/script/create-dolphinscheduler.sh
|
||||||
|
else
|
||||||
|
bash dolphinscheduler/${{ matrix.version }}/tools/bin/upgrade-schema.sh
|
||||||
|
fi
|
||||||
|
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
|
||||||
|
|
||||||
|
atlas_result=$(atlas schema diff \
|
||||||
|
--from "mysql://root:mysql@127.0.0.1:3306/dolphinscheduler_${{ env.DATABASE_VERSION }}" \
|
||||||
|
--to "mysql://root:mysql@127.0.0.1:3306/dolphinscheduler_dev")
|
||||||
|
if [[ ${atlas_result} != *"Schemas are synced"* ]]; then
|
||||||
|
echo "================================================================================================"
|
||||||
|
echo " !!!!! For Contributors !!!!!"
|
||||||
|
echo "================================================================================================"
|
||||||
|
echo "Database schema not sync, please add below change in the latest version of dolphinscheduler-dao/src/main/resources/sql/upgrade directory"
|
||||||
|
echo "${atlas_result}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
export DATABASE="postgresql"
|
||||||
|
export SPRING_DATASOURCE_DRIVER_CLASS_NAME="org.postgresql.Driver"
|
||||||
|
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler_dev"
|
||||||
|
export SPRING_DATASOURCE_USERNAME="postgres"
|
||||||
|
export SPRING_DATASOURCE_PASSWORD="postgres"
|
||||||
|
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
|
||||||
|
|
||||||
|
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler_${{ env.DATABASE_VERSION }}"
|
||||||
|
if [[ $DATABASE_VERSION -lt 300 ]]; then
|
||||||
|
bash dolphinscheduler/${{ matrix.version }}/script/create-dolphinscheduler.sh
|
||||||
|
else
|
||||||
|
bash dolphinscheduler/${{ matrix.version }}/tools/bin/upgrade-schema.sh
|
||||||
|
fi
|
||||||
|
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
|
||||||
|
|
||||||
|
atlas_result=$(atlas schema diff \
|
||||||
|
--from "postgres://postgres:postgres@127.0.0.1:5432/dolphinscheduler_${{ env.DATABASE_VERSION }}?search_path=public&sslmode=disable" \
|
||||||
|
--to "postgres://postgres:postgres@127.0.0.1:5432/dolphinscheduler_dev?search_path=public&sslmode=disable")
|
||||||
|
if [[ ${atlas_result} != *"Schemas are synced"* ]]; then
|
||||||
|
echo "================================================================================================"
|
||||||
|
echo " !!!!! For Contributors !!!!!"
|
||||||
|
echo "================================================================================================"
|
||||||
|
echo "Database schema not sync, please add below change in the latest version in dolphinscheduler-dao/src/main/resources/sql/upgrade directory"
|
||||||
|
echo "${atlas_result}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
result:
|
result:
|
||||||
name: Build
|
name: Build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
needs: [ build, paths-filter, cluster-test ]
|
needs: [ build, paths-filter, cluster-test, schema-check ]
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
- name: Status
|
- name: Status
|
||||||
run: |
|
run: |
|
||||||
if [[ ${{ needs.paths-filter.outputs.not-ignore }} == 'false' && ${{ github.event_name }} == 'pull_request' ]]; then
|
if [[ ${{ needs.paths-filter.outputs.not-ignore }} == 'false' && ${{ needs.paths-filter.outputs.db-schema }} == 'false' && ${{ github.event_name }} == 'pull_request' ]]; then
|
||||||
echo "Skip Build!"
|
echo "Skip Build!"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
if [[ ${{ needs.build.result }} != 'success' || ${{ needs.cluster-test.result }} != 'success' ]]; then
|
if [[ ${{ needs.build.result }} != 'success' || ${{ needs.cluster-test.result }} != 'success' || ${{ needs.schema-check.result }} != 'success' ]]; then
|
||||||
echo "Build Failed!"
|
echo "Build Failed!"
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -33,17 +33,21 @@ export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
|
||||||
# Registry center configuration, determines the type and link of the registry center
|
# Registry center configuration, determines the type and link of the registry center
|
||||||
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
|
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
|
||||||
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
|
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
|
||||||
|
export REGISTRY_ZOOKEEPER_BLOCK_UNTIL_CONNECTED=30000ms
|
||||||
|
|
||||||
# Tasks related configurations, need to change the configuration if you use the related tasks.
|
# Tasks related configurations, need to change the configuration if you use the related tasks.
|
||||||
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
||||||
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
||||||
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
||||||
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
|
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
|
||||||
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
||||||
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
||||||
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
|
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
|
||||||
|
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
|
|
||||||
|
export MASTER_RESERVED_MEMORY=0.01
|
||||||
|
export WORKER_RESERVED_MEMORY=0.01
|
||||||
|
|
||||||
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
||||||
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http:/
|
||||||
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
|
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
|
||||||
|
|
||||||
#Cluster start health check
|
#Cluster start health check
|
||||||
TIMEOUT=120
|
TIMEOUT=180
|
||||||
START_HEALTHCHECK_EXITCODE=0
|
START_HEALTHCHECK_EXITCODE=0
|
||||||
|
|
||||||
for ((i=1; i<=TIMEOUT; i++))
|
for ((i=1; i<=TIMEOUT; i++))
|
||||||
|
|
@ -45,11 +45,28 @@ do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $i -eq $TIMEOUT ]];then
|
if [[ $i -eq $TIMEOUT ]];then
|
||||||
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
|
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
|
||||||
echo "cluster start health check failed"
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/*.out"
|
||||||
|
echo "master start health check failed"
|
||||||
|
fi
|
||||||
|
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/dolphinscheduler-worker.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/*.out"
|
||||||
|
echo "worker start health check failed"
|
||||||
|
fi
|
||||||
|
if [[ $API_HTTP_STATUS -ne 200 ]]; then
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/dolphinscheduler-api.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/*.out"
|
||||||
|
echo "api start health check failed"
|
||||||
|
fi
|
||||||
|
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/dolphinscheduler-alert.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/*.out"
|
||||||
|
echo "alert start health check failed"
|
||||||
|
fi
|
||||||
exit $START_HEALTHCHECK_EXITCODE
|
exit $START_HEALTHCHECK_EXITCODE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,17 +33,21 @@ export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
|
||||||
# Registry center configuration, determines the type and link of the registry center
|
# Registry center configuration, determines the type and link of the registry center
|
||||||
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
|
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
|
||||||
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
|
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
|
||||||
|
export REGISTRY_ZOOKEEPER_BLOCK_UNTIL_CONNECTED=30000ms
|
||||||
|
|
||||||
# Tasks related configurations, need to change the configuration if you use the related tasks.
|
# Tasks related configurations, need to change the configuration if you use the related tasks.
|
||||||
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
||||||
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
||||||
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
||||||
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
|
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
|
||||||
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
||||||
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
||||||
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
|
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
|
||||||
|
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
|
|
||||||
|
export MASTER_RESERVED_MEMORY=0.01
|
||||||
|
export WORKER_RESERVED_MEMORY=0.01
|
||||||
|
|
||||||
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
||||||
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http:/
|
||||||
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
|
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
|
||||||
|
|
||||||
#Cluster start health check
|
#Cluster start health check
|
||||||
TIMEOUT=120
|
TIMEOUT=180
|
||||||
START_HEALTHCHECK_EXITCODE=0
|
START_HEALTHCHECK_EXITCODE=0
|
||||||
|
|
||||||
for ((i=1; i<=TIMEOUT; i++))
|
for ((i=1; i<=TIMEOUT; i++))
|
||||||
|
|
@ -45,10 +45,28 @@ do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $i -eq $TIMEOUT ]];then
|
if [[ $i -eq $TIMEOUT ]];then
|
||||||
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
|
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
|
||||||
echo "cluster start health check failed"
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
|
||||||
exit $START_HEALTHCHECK_EXITCODE
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/*.out"
|
||||||
fi
|
echo "master start health check failed"
|
||||||
|
fi
|
||||||
|
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/dolphinscheduler-worker.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/*.out"
|
||||||
|
echo "worker start health check failed"
|
||||||
|
fi
|
||||||
|
if [[ $API_HTTP_STATUS -ne 200 ]]; then
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/dolphinscheduler-api.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/*.out"
|
||||||
|
echo "api start health check failed"
|
||||||
|
fi
|
||||||
|
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/dolphinscheduler-alert.log"
|
||||||
|
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/*.out"
|
||||||
|
echo "alert start health check failed"
|
||||||
|
fi
|
||||||
|
exit $START_HEALTHCHECK_EXITCODE
|
||||||
|
fi
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,147 @@
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- dev
|
||||||
|
|
||||||
|
name: E2E-K8S
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: E2E-K8S-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
paths-filter:
|
||||||
|
name: E2E-K8S-Path-Filter
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
not-ignore: ${{ steps.filter.outputs.not-ignore }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
|
||||||
|
id: filter
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
not-ignore:
|
||||||
|
- '!(docs/**)'
|
||||||
|
e2e-k8s:
|
||||||
|
name: E2E-K8S-Execute
|
||||||
|
needs: paths-filter
|
||||||
|
if: ${{ (needs.paths-filter.outputs.not-ignore == 'true') || (github.event_name == 'push') }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 20
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- name: Build Image
|
||||||
|
run: |
|
||||||
|
./mvnw -B clean package \
|
||||||
|
-Dmaven.test.skip \
|
||||||
|
-Dmaven.javadoc.skip \
|
||||||
|
-Dspotless.skip=true \
|
||||||
|
-Dmaven.checkstyle.skip \
|
||||||
|
-Dmaven.deploy.skip \
|
||||||
|
-Ddocker.push.skip=true \
|
||||||
|
-Pdocker,release -Ddocker.tag=ci \
|
||||||
|
-pl org.apache.dolphinscheduler:dolphinscheduler-alert-server \
|
||||||
|
-pl dolphinscheduler-tools \
|
||||||
|
-pl dolphinscheduler-api \
|
||||||
|
-pl dolphinscheduler-master \
|
||||||
|
-pl dolphinscheduler-worker -am
|
||||||
|
- name: Create k8s Kind Cluster
|
||||||
|
run: |
|
||||||
|
# install kubectl
|
||||||
|
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||||
|
sudo chmod +x kubectl /usr/local/bin/kubectl
|
||||||
|
sudo mv kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
# install kind
|
||||||
|
curl -LO https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64
|
||||||
|
sudo chmod +x kind-linux-amd64
|
||||||
|
sudo mv kind-linux-amd64 /usr/local/bin/kind
|
||||||
|
kind version
|
||||||
|
|
||||||
|
# create kind cluster
|
||||||
|
kind_node_image="kindest/node:v1.23.17"
|
||||||
|
echo "Kubernetes version: ${kind_node_image}"
|
||||||
|
kind create cluster --name dolphinscheduler --image ${kind_node_image}
|
||||||
|
kubectl version
|
||||||
|
kubectl get all --all-namespaces
|
||||||
|
- name: Load images
|
||||||
|
run: |
|
||||||
|
components=("master" "worker" "api" "tools" "alert-server")
|
||||||
|
for component in "${components[@]}"; do
|
||||||
|
kind load docker-image apache/dolphinscheduler-${component}:ci --name dolphinscheduler
|
||||||
|
done
|
||||||
|
- name: Helm install dolphinscheduler
|
||||||
|
working-directory: ${{ github.workspace }}/deploy/kubernetes/dolphinscheduler
|
||||||
|
run: |
|
||||||
|
# install helm
|
||||||
|
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||||
|
|
||||||
|
# install ds chart via helm
|
||||||
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
|
helm dependency update .
|
||||||
|
helm upgrade --install --create-namespace -n dolphinscheduler dolphinscheduler . -f - <<EOF
|
||||||
|
image:
|
||||||
|
registry: apache
|
||||||
|
tag: ci
|
||||||
|
master:
|
||||||
|
replicas: 1
|
||||||
|
livenessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
readinessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
worker:
|
||||||
|
replicas: 1
|
||||||
|
livenessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
readinessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
alert:
|
||||||
|
livenessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
readinessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
api:
|
||||||
|
livenessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
readinessProbe:
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Wait for pods
|
||||||
|
run: |
|
||||||
|
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}';
|
||||||
|
components=("master" "worker" "api" "alert")
|
||||||
|
for component in "${components[@]}"; do
|
||||||
|
until kubectl -n dolphinscheduler get pods -l app.kubernetes.io/component=${component} -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do
|
||||||
|
echo "waiting for dolphinscheduler ${component} to be available"
|
||||||
|
sleep 10
|
||||||
|
kubectl get pods --all-namespaces
|
||||||
|
kubectl get events --all-namespaces
|
||||||
|
for pod in $(kubectl get pods -n dolphinscheduler -o jsonpath='{.items[*].metadata.name}'); do
|
||||||
|
echo "logs for pod $pod:"
|
||||||
|
kubectl logs --tail=1000 -n dolphinscheduler $pod
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
@ -60,14 +60,14 @@ jobs:
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
|
||||||
restore-keys: ${{ runner.os }}-maven-
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
- name: Build Image
|
- name: Build Image
|
||||||
run: |
|
run: |
|
||||||
./mvnw -B clean install \
|
./mvnw -B clean install \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dcheckstyle.skip=true \
|
-Dspotless.skip=true \
|
||||||
-Pdocker,release -Ddocker.tag=ci \
|
-Pdocker,release -Ddocker.tag=ci \
|
||||||
-pl dolphinscheduler-standalone-server -am
|
-pl dolphinscheduler-standalone-server -am
|
||||||
- name: Export Docker Images
|
- name: Export Docker Images
|
||||||
|
|
@ -120,6 +120,46 @@ jobs:
|
||||||
class: org.apache.dolphinscheduler.e2e.cases.ClickhouseDataSourceE2ETest
|
class: org.apache.dolphinscheduler.e2e.cases.ClickhouseDataSourceE2ETest
|
||||||
- name: PostgresDataSource
|
- name: PostgresDataSource
|
||||||
class: org.apache.dolphinscheduler.e2e.cases.PostgresDataSourceE2ETest
|
class: org.apache.dolphinscheduler.e2e.cases.PostgresDataSourceE2ETest
|
||||||
|
env:
|
||||||
|
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- name: Cache local Maven repository
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
|
||||||
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
name: Download Docker Images
|
||||||
|
with:
|
||||||
|
name: standalone-image
|
||||||
|
path: /tmp
|
||||||
|
- name: Load Docker Images
|
||||||
|
run: |
|
||||||
|
docker load -i /tmp/standalone-image.tar
|
||||||
|
- name: Run Test
|
||||||
|
run: |
|
||||||
|
./mvnw -B -f dolphinscheduler-e2e/pom.xml -am \
|
||||||
|
-DfailIfNoTests=false \
|
||||||
|
-Dtest=${{ matrix.case.class }} test
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
if: always()
|
||||||
|
name: Upload Recording
|
||||||
|
with:
|
||||||
|
name: recording-${{ matrix.case.name }}
|
||||||
|
path: ${{ env.RECORDING_PATH }}
|
||||||
|
retention-days: 1
|
||||||
|
e2e-optional:
|
||||||
|
name: ${{ matrix.case.name }}
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
case:
|
||||||
- name: SqlServerDataSource
|
- name: SqlServerDataSource
|
||||||
class: org.apache.dolphinscheduler.e2e.cases.SqlServerDataSourceE2ETest
|
class: org.apache.dolphinscheduler.e2e.cases.SqlServerDataSourceE2ETest
|
||||||
- name: HiveDataSource
|
- name: HiveDataSource
|
||||||
|
|
@ -134,7 +174,7 @@ jobs:
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
|
||||||
restore-keys: ${{ runner.os }}-maven-
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
- uses: actions/download-artifact@v2
|
- uses: actions/download-artifact@v2
|
||||||
name: Download Docker Images
|
name: Download Docker Images
|
||||||
|
|
@ -143,7 +183,7 @@ jobs:
|
||||||
path: /tmp
|
path: /tmp
|
||||||
- name: Load Docker Images
|
- name: Load Docker Images
|
||||||
run: |
|
run: |
|
||||||
docker load -i /tmp/standalone-image.tar
|
docker load -i /tmp/standalone-image.tar
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: |
|
run: |
|
||||||
./mvnw -B -f dolphinscheduler-e2e/pom.xml -am \
|
./mvnw -B -f dolphinscheduler-e2e/pom.xml -am \
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ jobs:
|
||||||
java-version: 8
|
java-version: 8
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
- name: Run OWASP Dependency Check
|
- name: Run OWASP Dependency Check
|
||||||
run: ./mvnw -B clean install verify dependency-check:check -DskipDepCheck=false -Dmaven.test.skip=true -Dcheckstyle.skip=true
|
run: ./mvnw -B clean install verify dependency-check:check -DskipDepCheck=false -Dmaven.test.skip=true -Dspotless.skip=true
|
||||||
- name: Upload report
|
- name: Upload report
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
if: ${{ cancelled() || failure() }}
|
if: ${{ cancelled() || failure() }}
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,8 @@ jobs:
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-docker
|
||||||
restore-keys: |
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
${{ runner.os }}-maven-
|
|
||||||
- name: Set environment variables
|
- name: Set environment variables
|
||||||
run: |
|
run: |
|
||||||
if [[ ${{ github.event_name }} == "release" ]]; then
|
if [[ ${{ github.event_name }} == "release" ]]; then
|
||||||
|
|
@ -71,7 +70,7 @@ jobs:
|
||||||
./mvnw -B clean deploy \
|
./mvnw -B clean deploy \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dcheckstyle.skip=true \
|
-Dspotless.skip=true \
|
||||||
-Dmaven.deploy.skip \
|
-Dmaven.deploy.skip \
|
||||||
-Ddocker.tag=${{ env.DOCKER_TAG }} \
|
-Ddocker.tag=${{ env.DOCKER_TAG }} \
|
||||||
-Ddocker.hub=${{ env.HUB }} \
|
-Ddocker.hub=${{ env.HUB }} \
|
||||||
|
|
|
||||||
|
|
@ -72,25 +72,26 @@ jobs:
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ~/.m2/repository
|
path: ~/.m2/repository
|
||||||
key: ${{ runner.os }}-maven
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-unit-test
|
||||||
|
restore-keys: ${{ runner.os }}-maven-
|
||||||
|
|
||||||
- name: Run Unit tests
|
- name: Run Unit tests
|
||||||
run: ./mvnw clean verify -B -Dmaven.test.skip=false -Dcheckstyle.skip=true
|
run: ./mvnw clean verify -B -Dmaven.test.skip=false -Dspotless.skip=true
|
||||||
- name: Upload coverage report to codecov
|
- name: Upload coverage report to codecov
|
||||||
run: CODECOV_TOKEN="09c2663f-b091-4258-8a47-c981827eb29a" bash <(curl -s https://codecov.io/bash)
|
run: CODECOV_TOKEN="09c2663f-b091-4258-8a47-c981827eb29a" bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
||||||
# Set up JDK 11 for SonarCloud.
|
# Set up JDK 17 for SonarCloud.
|
||||||
- name: Set up JDK 11
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@v2
|
uses: actions/setup-java@v2
|
||||||
with:
|
with:
|
||||||
java-version: 11
|
java-version: 17
|
||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
- name: Run SonarCloud Analysis
|
- name: Run SonarCloud Analysis
|
||||||
run: >
|
run: >
|
||||||
./mvnw --batch-mode verify sonar:sonar
|
./mvnw --batch-mode verify sonar:sonar
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
|
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
|
||||||
-Dmaven.test.skip=true
|
-Dmaven.test.skip=true
|
||||||
-Dcheckstyle.skip=true
|
-Dspotless.skip=true
|
||||||
-Dsonar.host.url=https://sonarcloud.io
|
-Dsonar.host.url=https://sonarcloud.io
|
||||||
-Dsonar.organization=apache
|
-Dsonar.organization=apache
|
||||||
-Dsonar.core.codeCoveragePlugin=jacoco
|
-Dsonar.core.codeCoveragePlugin=jacoco
|
||||||
|
|
|
||||||
2
NOTICE
2
NOTICE
|
|
@ -1,5 +1,5 @@
|
||||||
Apache DolphinScheduler
|
Apache DolphinScheduler
|
||||||
Copyright 2019-2022 The Apache Software Foundation
|
Copyright 2019-2023 The Apache Software Foundation
|
||||||
|
|
||||||
This product includes software developed at
|
This product includes software developed at
|
||||||
The Apache Software Foundation (http://www.apache.org/).
|
The Apache Software Foundation (http://www.apache.org/).
|
||||||
|
|
|
||||||
|
|
@ -75,4 +75,3 @@ Welcome to join the Apache DolphinScheduler community by:
|
||||||
DolphinScheduler enriches the <a href="https://landscape.cncf.io/?landscape=observability-and-analysis&license=apache-license-2-0">CNCF CLOUD NATIVE Landscape.</a >
|
DolphinScheduler enriches the <a href="https://landscape.cncf.io/?landscape=observability-and-analysis&license=apache-license-2-0">CNCF CLOUD NATIVE Landscape.</a >
|
||||||
|
|
||||||
</p >
|
</p >
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@
|
||||||
|
|
||||||
DolphinScheduler 的主要特性如下:
|
DolphinScheduler 的主要特性如下:
|
||||||
|
|
||||||
- 易于部署,提供四种部署方式,包括Standalone、Cluster、Docker和Kubernetes。
|
- 易于部署,提供四种部署方式,包括Standalone、Cluster、Docker和Kubernetes
|
||||||
- 易于使用,可以通过四种方式创建和管理工作流,包括Web UI、[Python SDK](https://dolphinscheduler.apache.org/python/main/index.html)、Yaml文件和Open API
|
- 易于使用,可以通过四种方式创建和管理工作流,包括Web UI、[Python SDK](https://dolphinscheduler.apache.org/python/main/index.html)、Yaml文件和Open API
|
||||||
- 高可靠高可用,多主多从的去中心化架构,原生支持横向扩展。
|
- 高可靠高可用,多主多从的去中心化架构,原生支持横向扩展
|
||||||
- 高性能,性能比其他编排平台快N倍,每天可支持千万级任务
|
- 高性能,性能比其他编排平台快N倍,每天可支持千万级任务
|
||||||
- Cloud Native,DolphinScheduler支持编排多云/数据中心工作流,支持自定义任务类型
|
- Cloud Native,DolphinScheduler支持编排多云/数据中心工作流,支持自定义任务类型
|
||||||
- 对工作流和工作流实例(包括任务)进行版本控制
|
- 对工作流和工作流实例(包括任务)进行版本控制
|
||||||
|
|
@ -39,10 +39,10 @@ DolphinScheduler 的主要特性如下:
|
||||||
* **工作流定义**: 通过拖拉拽创建和管理工作流,轻松构建和维护复杂的工作流。
|
* **工作流定义**: 通过拖拉拽创建和管理工作流,轻松构建和维护复杂的工作流。
|
||||||

|

|
||||||
|
|
||||||
* **工作流树状图**: 抽象的树形结构可以更清晰的理解任务之间的关系
|
* **工作流树状图**: 抽象的树形结构可以更清晰地理解任务之间的关系
|
||||||

|

|
||||||
|
|
||||||
* **数据源**: 管理支持多种外部数据源,为MySQL、PostgreSQL、Hive、Trino等,并提供统一的数据访问能力。
|
* **数据源**: 支持管理多种外部数据源,为MySQL、PostgreSQL、Hive、Trino等,并提供统一的数据访问能力。
|
||||||

|

|
||||||
|
|
||||||
* **监控**:实时查看master、worker和数据库的状态,包括服务器资源使用情况和负载情况,无需登录服务器即可快速进行健康检查。
|
* **监控**:实时查看master、worker和数据库的状态,包括服务器资源使用情况和负载情况,无需登录服务器即可快速进行健康检查。
|
||||||
|
|
@ -54,8 +54,7 @@ DolphinScheduler 的主要特性如下:
|
||||||
|
|
||||||
## 参与贡献
|
## 参与贡献
|
||||||
|
|
||||||
社区欢迎大家贡献,请参考此页面了解更多:[如何贡献](docs/docs/zh/contribute/join/contribute.md),在[这里](https://github.com/apache/dolphinscheduler/contribute)可以找到good first issue
|
社区欢迎大家贡献,请参考此页面了解更多:[如何贡献](docs/docs/zh/contribute/join/contribute.md),如果你是首次贡献 DolphinScheduler,在[这里](https://github.com/apache/dolphinscheduler/contribute)可以找到good first issue
|
||||||
如果你是首次贡献 dolphinscheduler。
|
|
||||||
|
|
||||||
## 社区
|
## 社区
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
HUB=ghcr.io/apache/dolphinscheduler
|
HUB=apache
|
||||||
TAG=latest
|
TAG=3.2.0
|
||||||
|
|
||||||
TZ=Asia/Shanghai
|
TZ=Asia/Shanghai
|
||||||
DATABASE=postgresql
|
DATABASE=postgresql
|
||||||
|
|
|
||||||
|
|
@ -35,11 +35,11 @@ type: application
|
||||||
|
|
||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
version: 3.1.0
|
version: 3.2.0
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application.
|
# incremented each time you make changes to the application.
|
||||||
appVersion: 3.1.0
|
appVersion: 3.2.0
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,46 @@ Create a database environment variables.
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-externaldb
|
name: {{ include "dolphinscheduler.fullname" . }}-externaldb
|
||||||
key: database-password
|
key: database-password
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
- name: SPRING_DATASOURCE_DRIVER-CLASS-NAME
|
||||||
|
{{- if .Values.postgresql.enabled }}
|
||||||
|
value: {{ .Values.postgresql.driverClassName }}
|
||||||
|
{{- else if .Values.mysql.enabled }}
|
||||||
|
value: {{ .Values.mysql.driverClassName }}
|
||||||
|
{{- else }}
|
||||||
|
value: {{ .Values.externalDatabase.driverClassName | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a security environment variables.
|
||||||
|
*/}}
|
||||||
|
{{- define "dolphinscheduler.security.env_vars" -}}
|
||||||
|
- name: SECURITY_AUTHENTICATION_TYPE
|
||||||
|
value: {{ .Values.security.authentication.type | quote }}
|
||||||
|
{{- if eq .Values.security.authentication.type "LDAP" }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_URLS
|
||||||
|
value: {{ .Values.security.authentication.ldap.urls | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_BASE_DN
|
||||||
|
value: {{ .Values.security.authentication.ldap.basedn | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_USERNAME
|
||||||
|
value: {{ .Values.security.authentication.ldap.username | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_PASSWORD
|
||||||
|
value: {{ .Values.security.authentication.ldap.password | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_USER_ADMIN
|
||||||
|
value: {{ .Values.security.authentication.ldap.user.admin | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_USER_IDENTITY_ATTRIBUTE
|
||||||
|
value: {{ .Values.security.authentication.ldap.user.identityattribute | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_USER_EMAIL_ATTRIBUTE
|
||||||
|
value: {{ .Values.security.authentication.ldap.user.emailattribute | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_USER_NOT_EXIST_ACTION
|
||||||
|
value: {{ .Values.security.authentication.ldap.user.notexistaction | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_SSL_ENABLE
|
||||||
|
value: {{ .Values.security.authentication.ldap.ssl.enable | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_SSL_TRUST_STORE
|
||||||
|
value: {{ .Values.security.authentication.ldap.ssl.truststore | quote }}
|
||||||
|
- name: SECURITY_AUTHENTICATION_LDAP_SSL_TRUST_STORE_PASSWORD
|
||||||
|
value: {{ .Values.security.authentication.ldap.ssl.truststorepassword | quote }}
|
||||||
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
|
|
@ -212,15 +252,36 @@ Create a registry environment variables.
|
||||||
- name: REGISTRY_TYPE
|
- name: REGISTRY_TYPE
|
||||||
{{- if .Values.zookeeper.enabled }}
|
{{- if .Values.zookeeper.enabled }}
|
||||||
value: "zookeeper"
|
value: "zookeeper"
|
||||||
|
{{- else if .Values.etcd.enabled }}
|
||||||
|
value: "etcd"
|
||||||
{{- else }}
|
{{- else }}
|
||||||
value: {{ .Values.externalRegistry.registryPluginName }}
|
value: {{ .Values.externalRegistry.registryPluginName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.etcd.enabled }}
|
||||||
|
- name: REGISTRY_ENDPOINTS
|
||||||
|
value: {{ .Values.etcd.endpoints }}
|
||||||
|
- name: REGISTRY_NAMESPACE
|
||||||
|
value: {{ .Values.etcd.namespace }}
|
||||||
|
- name: REGISTRY_USER
|
||||||
|
value: {{ .Values.etcd.user }}
|
||||||
|
- name: REGISTRY_PASSWORD
|
||||||
|
value: {{ .Values.etcd.passWord }}
|
||||||
|
- name: REGISTRY_AUTHORITY
|
||||||
|
value: {{ .Values.etcd.authority }}
|
||||||
|
- name: REGISTRY_CERT_FILE
|
||||||
|
value: {{ .Values.etcd.ssl.certFile }}
|
||||||
|
- name: REGISTRY_KEY_CERT_CHAIN_FILE
|
||||||
|
value: {{ .Values.etcd.ssl.keyCertChainFile }}
|
||||||
|
- name: REGISTRY_KEY_FILE
|
||||||
|
value: {{ .Values.etcd.ssl.keyFile }}
|
||||||
|
{{- else }}
|
||||||
- name: REGISTRY_ZOOKEEPER_CONNECT_STRING
|
- name: REGISTRY_ZOOKEEPER_CONNECT_STRING
|
||||||
{{- if .Values.zookeeper.enabled }}
|
{{- if .Values.zookeeper.enabled }}
|
||||||
value: {{ template "dolphinscheduler.zookeeper.quorum" . }}
|
value: {{ template "dolphinscheduler.zookeeper.quorum" . }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
value: {{ .Values.externalRegistry.registryServers }}
|
value: {{ .Values.externalRegistry.registryServers }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
|
|
@ -264,3 +325,53 @@ Create a fsFileResourcePersistence volumeMount.
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-fs-file
|
name: {{ include "dolphinscheduler.fullname" . }}-fs-file
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a etcd ssl volume.
|
||||||
|
*/}}
|
||||||
|
{{- define "dolphinscheduler.etcd.ssl.volume" -}}
|
||||||
|
{{- if .Values.etcd.ssl.enabled -}}
|
||||||
|
- name: etcd-ssl
|
||||||
|
secret:
|
||||||
|
secretName: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a etcd ssl volumeMount.
|
||||||
|
*/}}
|
||||||
|
{{- define "dolphinscheduler.etcd.ssl.volumeMount" -}}
|
||||||
|
{{- if .Values.etcd.ssl.enabled -}}
|
||||||
|
- mountPath: /opt/dolphinscheduler/{{ .Values.etcd.ssl.certFile }}
|
||||||
|
name: etcd-ssl
|
||||||
|
subPath: cert-file
|
||||||
|
- mountPath: /opt/dolphinscheduler/{{ .Values.etcd.ssl.keyCertChainFile }}
|
||||||
|
name: etcd-ssl
|
||||||
|
subPath: key-cert-chain-file
|
||||||
|
- mountPath: /opt/dolphinscheduler/{{ .Values.etcd.ssl.keyFile }}
|
||||||
|
name: etcd-ssl
|
||||||
|
subPath: key-file
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a ldap ssl volume.
|
||||||
|
*/}}
|
||||||
|
{{- define "dolphinscheduler.ldap.ssl.volume" -}}
|
||||||
|
{{- if .Values.security.authentication.ldap.ssl.enable -}}
|
||||||
|
- name: jks-file
|
||||||
|
secret:
|
||||||
|
secretName: {{ include "dolphinscheduler.fullname" . }}-ldap-ssl
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a ldap ssl volumeMount.
|
||||||
|
*/}}
|
||||||
|
{{- define "dolphinscheduler.ldap.ssl.volumeMount" -}}
|
||||||
|
{{- if .Values.security.authentication.ldap.ssl.enable -}}
|
||||||
|
- mountPath: {{ .Values.security.authentication.ldap.ssl.truststore }}
|
||||||
|
name: jks-file
|
||||||
|
subPath: jks-file
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.alert.enabled }}
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -34,9 +35,14 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "dolphinscheduler.alert.labels" . | nindent 8 }}
|
{{- include "dolphinscheduler.alert.labels" . | nindent 8 }}
|
||||||
{{- if .Values.alert.annotations }}
|
{{- if or .Values.alert.annotations .Values.conf.auto }}
|
||||||
annotations:
|
annotations:
|
||||||
|
{{- if .Values.conf.auto }}
|
||||||
|
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.alert.annotations }}
|
||||||
{{- toYaml .Values.alert.annotations | nindent 8 }}
|
{{- toYaml .Values.alert.annotations | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
||||||
|
|
@ -120,3 +126,4 @@ spec:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.api.enabled }}
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -34,9 +35,14 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "dolphinscheduler.api.labels" . | nindent 8 }}
|
{{- include "dolphinscheduler.api.labels" . | nindent 8 }}
|
||||||
{{- if .Values.api.annotations }}
|
{{- if or .Values.api.annotations .Values.conf.auto }}
|
||||||
annotations:
|
annotations:
|
||||||
|
{{- if .Values.conf.auto }}
|
||||||
|
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.api.annotations }}
|
||||||
{{- toYaml .Values.api.annotations | nindent 8 }}
|
{{- toYaml .Values.api.annotations | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
||||||
|
|
@ -72,6 +78,7 @@ spec:
|
||||||
value: {{ .Values.timezone }}
|
value: {{ .Values.timezone }}
|
||||||
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
|
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
|
||||||
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
|
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
|
||||||
|
{{- include "dolphinscheduler.security.env_vars" . | nindent 12 }}
|
||||||
{{ range $key, $value := .Values.api.env }}
|
{{ range $key, $value := .Values.api.env }}
|
||||||
- name: {{ $key }}
|
- name: {{ $key }}
|
||||||
value: {{ $value | quote }}
|
value: {{ $value | quote }}
|
||||||
|
|
@ -111,6 +118,8 @@ spec:
|
||||||
subPath: common_properties
|
subPath: common_properties
|
||||||
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
|
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
|
||||||
{{- include "dolphinscheduler.fsFileResource.volumeMount" . | nindent 12 }}
|
{{- include "dolphinscheduler.fsFileResource.volumeMount" . | nindent 12 }}
|
||||||
|
{{- include "dolphinscheduler.ldap.ssl.volumeMount" . | nindent 12 }}
|
||||||
|
{{- include "dolphinscheduler.etcd.ssl.volumeMount" . | nindent 12 }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: {{ include "dolphinscheduler.fullname" . }}-api
|
- name: {{ include "dolphinscheduler.fullname" . }}-api
|
||||||
{{- if .Values.api.persistentVolumeClaim.enabled }}
|
{{- if .Values.api.persistentVolumeClaim.enabled }}
|
||||||
|
|
@ -124,3 +133,6 @@ spec:
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
||||||
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
|
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
|
||||||
{{- include "dolphinscheduler.fsFileResource.volume" . | nindent 8 }}
|
{{- include "dolphinscheduler.fsFileResource.volume" . | nindent 8 }}
|
||||||
|
{{- include "dolphinscheduler.ldap.ssl.volume" . | nindent 8 }}
|
||||||
|
{{- include "dolphinscheduler.etcd.ssl.volume" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
{{- if .Values.ingress.enabled }}
|
{{- if and .Values.api.enabled .Values.ingress.enabled }}
|
||||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
|
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" }}
|
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" }}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.api.enabled }}
|
||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -52,3 +53,4 @@ spec:
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-common
|
name: {{ include "dolphinscheduler.fullname" . }}-common
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
################################
|
################################
|
||||||
## DolphinScheduler Worker KEDA Scaler
|
## DolphinScheduler Worker KEDA Scaler
|
||||||
#################################
|
#################################
|
||||||
{{- if and .Values.worker.keda.enabled }}
|
{{- if and .Values.worker.keda.enabled .Values.worker.enabled }}
|
||||||
apiVersion: keda.sh/v1alpha1
|
apiVersion: keda.sh/v1alpha1
|
||||||
kind: ScaledObject
|
kind: ScaledObject
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
{{- if .Values.alert.persistentVolumeClaim.enabled }}
|
{{- if and .Values.alert.enabled .Values.alert.persistentVolumeClaim.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
{{- if .Values.api.persistentVolumeClaim.enabled }}
|
{{- if and .Values.api.enabled .Values.api.persistentVolumeClaim.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
{{- if .Values.etcd.ssl.enabled }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
cert-file: {{ .Files.Get .Values.etcd.ssl.certFile | b64enc | quote }}
|
||||||
|
key-cert-chain-file: {{ .Files.Get .Values.etcd.ssl.keyCertChainFile | b64enc | quote }}
|
||||||
|
key-file: {{ .Files.Get .Values.etcd.ssl.keyFile | b64enc | quote }}
|
||||||
|
{{- end }}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
{{- if .Values.security.authentication.ldap.ssl.enable }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ include "dolphinscheduler.fullname" . }}-ldap-ssl
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-ldap-ssl
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
jks-file: {{ .Values.security.authentication.ldap.ssl.jksbase64content | quote }}
|
||||||
|
{{- end }}
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.master.enabled }}
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -31,9 +32,14 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "dolphinscheduler.master.labels" . | nindent 8 }}
|
{{- include "dolphinscheduler.master.labels" . | nindent 8 }}
|
||||||
{{- if .Values.master.annotations }}
|
{{- if or .Values.master.annotations .Values.conf.auto }}
|
||||||
annotations:
|
annotations:
|
||||||
|
{{- if .Values.conf.auto }}
|
||||||
|
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.master.annotations }}
|
||||||
{{- toYaml .Values.master.annotations | nindent 8 }}
|
{{- toYaml .Values.master.annotations | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
||||||
|
|
@ -60,6 +66,8 @@ spec:
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 5678
|
- containerPort: 5678
|
||||||
name: "master-port"
|
name: "master-port"
|
||||||
|
- containerPort: 5679
|
||||||
|
name: "actuator-port"
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: {{ .Values.timezone }}
|
value: {{ .Values.timezone }}
|
||||||
|
|
@ -105,6 +113,7 @@ spec:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
mountPath: /opt/dolphinscheduler/conf/common.properties
|
mountPath: /opt/dolphinscheduler/conf/common.properties
|
||||||
subPath: common_properties
|
subPath: common_properties
|
||||||
|
{{- include "dolphinscheduler.etcd.ssl.volumeMount" . | nindent 12 }}
|
||||||
volumes:
|
volumes:
|
||||||
- name: {{ include "dolphinscheduler.fullname" . }}-master
|
- name: {{ include "dolphinscheduler.fullname" . }}-master
|
||||||
{{- if .Values.master.persistentVolumeClaim.enabled }}
|
{{- if .Values.master.persistentVolumeClaim.enabled }}
|
||||||
|
|
@ -117,6 +126,7 @@ spec:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
||||||
|
{{- include "dolphinscheduler.etcd.ssl.volume" . | nindent 8 }}
|
||||||
{{- if .Values.master.persistentVolumeClaim.enabled }}
|
{{- if .Values.master.persistentVolumeClaim.enabled }}
|
||||||
volumeClaimTemplates:
|
volumeClaimTemplates:
|
||||||
- metadata:
|
- metadata:
|
||||||
|
|
@ -134,3 +144,4 @@ spec:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .Values.master.persistentVolumeClaim.storage | quote }}
|
storage: {{ .Values.master.persistentVolumeClaim.storage | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.worker.enabled }}
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -31,9 +32,14 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
{{- include "dolphinscheduler.worker.labels" . | nindent 8 }}
|
{{- include "dolphinscheduler.worker.labels" . | nindent 8 }}
|
||||||
{{- if .Values.worker.annotations }}
|
{{- if or .Values.worker.annotations .Values.conf.auto }}
|
||||||
annotations:
|
annotations:
|
||||||
|
{{- if .Values.conf.auto }}
|
||||||
|
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.worker.annotations }}
|
||||||
{{- toYaml .Values.worker.annotations | nindent 8 }}
|
{{- toYaml .Values.worker.annotations | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
|
||||||
|
|
@ -60,6 +66,8 @@ spec:
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 1234
|
- containerPort: 1234
|
||||||
name: "worker-port"
|
name: "worker-port"
|
||||||
|
- containerPort: 1235
|
||||||
|
name: "actuator-port"
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: {{ .Values.timezone }}
|
value: {{ .Values.timezone }}
|
||||||
|
|
@ -108,6 +116,7 @@ spec:
|
||||||
subPath: common_properties
|
subPath: common_properties
|
||||||
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
|
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
|
||||||
{{- include "dolphinscheduler.fsFileResource.volumeMount" . | nindent 12 }}
|
{{- include "dolphinscheduler.fsFileResource.volumeMount" . | nindent 12 }}
|
||||||
|
{{- include "dolphinscheduler.etcd.ssl.volumeMount" . | nindent 12 }}
|
||||||
volumes:
|
volumes:
|
||||||
{{- if .Values.worker.persistentVolumeClaim.enabled }}
|
{{- if .Values.worker.persistentVolumeClaim.enabled }}
|
||||||
- name: {{ include "dolphinscheduler.fullname" . }}-worker-data
|
- name: {{ include "dolphinscheduler.fullname" . }}-worker-data
|
||||||
|
|
@ -135,6 +144,7 @@ spec:
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
name: {{ include "dolphinscheduler.fullname" . }}-configs
|
||||||
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
|
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
|
||||||
{{- include "dolphinscheduler.fsFileResource.volume" . | nindent 8 }}
|
{{- include "dolphinscheduler.fsFileResource.volume" . | nindent 8 }}
|
||||||
|
{{- include "dolphinscheduler.etcd.ssl.volume" . | nindent 8 }}
|
||||||
{{- if .Values.worker.persistentVolumeClaim.enabled }}
|
{{- if .Values.worker.persistentVolumeClaim.enabled }}
|
||||||
volumeClaimTemplates:
|
volumeClaimTemplates:
|
||||||
{{- if .Values.worker.persistentVolumeClaim.dataPersistentVolume.enabled }}
|
{{- if .Values.worker.persistentVolumeClaim.dataPersistentVolume.enabled }}
|
||||||
|
|
@ -170,3 +180,4 @@ spec:
|
||||||
storage: {{ .Values.worker.persistentVolumeClaim.logsPersistentVolume.storage | quote }}
|
storage: {{ .Values.worker.persistentVolumeClaim.logsPersistentVolume.storage | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,18 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.alert.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "dolphinscheduler.fullname" . }}-alert
|
name: {{ include "dolphinscheduler.fullname" . }}-alert
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert
|
||||||
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.alert.service.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.alert.service.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: 50052
|
- port: 50052
|
||||||
|
|
@ -33,3 +38,34 @@ spec:
|
||||||
name: actuator-port
|
name: actuator-port
|
||||||
selector:
|
selector:
|
||||||
{{- include "dolphinscheduler.alert.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.alert.labels" . | nindent 4 }}
|
||||||
|
|
||||||
|
---
|
||||||
|
{{- if .Values.alert.service.serviceMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ include "dolphinscheduler.fullname" . }}-alert
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.alert.service.serviceMonitor.labels }}
|
||||||
|
{{- toYaml .Values.alert.service.serviceMonitor.labels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.alert.service.serviceMonitor.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.alert.service.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Values.alert.service.serviceMonitor.namespace | default .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
|
||||||
|
endpoints:
|
||||||
|
- scheme: http
|
||||||
|
targetPort: actuator-port
|
||||||
|
path: {{ .Values.alert.service.serviceMonitor.path }}
|
||||||
|
interval: {{ .Values.alert.service.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.api.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -21,11 +22,8 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
|
||||||
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
{{- if and (eq .Values.api.service.type "LoadBalancer") .Values.api.service.annotations }}
|
{{- if .Values.api.service.annotations }}
|
||||||
annotations:
|
annotations: {{- toYaml .Values.api.service.annotations | nindent 4 }}
|
||||||
{{- range $key, $value := .Values.api.service.annotations }}
|
|
||||||
{{ $key }}: {{ $value | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
type: {{ .Values.api.service.type }}
|
type: {{ .Values.api.service.type }}
|
||||||
|
|
@ -59,3 +57,34 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
{{- include "dolphinscheduler.api.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.api.labels" . | nindent 4 }}
|
||||||
|
|
||||||
|
---
|
||||||
|
{{- if .Values.api.service.serviceMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ include "dolphinscheduler.fullname" . }}-api
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.api.service.serviceMonitor.labels }}
|
||||||
|
{{- toYaml .Values.api.service.serviceMonitor.labels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.api.service.serviceMonitor.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.api.service.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Values.api.service.serviceMonitor.namespace | default .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
|
||||||
|
endpoints:
|
||||||
|
- scheme: http
|
||||||
|
targetPort: api-port
|
||||||
|
path: {{ .Values.api.service.serviceMonitor.path }}
|
||||||
|
interval: {{ .Values.api.service.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.master.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -21,6 +22,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-master-headless
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-master-headless
|
||||||
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.master.service.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.master.service.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
clusterIP: "None"
|
clusterIP: "None"
|
||||||
ports:
|
ports:
|
||||||
|
|
@ -28,5 +32,40 @@ spec:
|
||||||
targetPort: master-port
|
targetPort: master-port
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: master-port
|
name: master-port
|
||||||
|
- port: 5679
|
||||||
|
targetPort: actuator-port
|
||||||
|
protocol: TCP
|
||||||
|
name: actuator-port
|
||||||
selector:
|
selector:
|
||||||
{{- include "dolphinscheduler.master.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.master.labels" . | nindent 4 }}
|
||||||
|
|
||||||
|
---
|
||||||
|
{{- if .Values.master.service.serviceMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ include "dolphinscheduler.fullname" . }}-master
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.master.service.serviceMonitor.labels }}
|
||||||
|
{{- toYaml .Values.master.service.serviceMonitor.labels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.master.service.serviceMonitor.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.master.service.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Values.master.service.serviceMonitor.namespace | default .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-master-headless
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
|
||||||
|
endpoints:
|
||||||
|
- scheme: http
|
||||||
|
targetPort: actuator-port
|
||||||
|
path: {{ .Values.master.service.serviceMonitor.path }}
|
||||||
|
interval: {{ .Values.master.service.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
{{- if and .Values.worker.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -21,6 +22,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-worker-headless
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-worker-headless
|
||||||
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.worker.service.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.worker.service.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
clusterIP: "None"
|
clusterIP: "None"
|
||||||
ports:
|
ports:
|
||||||
|
|
@ -28,5 +32,40 @@ spec:
|
||||||
targetPort: worker-port
|
targetPort: worker-port
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: worker-port
|
name: worker-port
|
||||||
|
- port: 1235
|
||||||
|
targetPort: actuator-port
|
||||||
|
protocol: TCP
|
||||||
|
name: actuator-port
|
||||||
selector:
|
selector:
|
||||||
{{- include "dolphinscheduler.worker.labels" . | nindent 4 }}
|
{{- include "dolphinscheduler.worker.labels" . | nindent 4 }}
|
||||||
|
|
||||||
|
---
|
||||||
|
{{- if .Values.worker.service.serviceMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ include "dolphinscheduler.fullname" . }}-worker
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
|
||||||
|
{{- if .Values.worker.service.serviceMonitor.labels }}
|
||||||
|
{{- toYaml .Values.worker.service.serviceMonitor.labels | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.worker.service.serviceMonitor.annotations }}
|
||||||
|
annotations: {{- toYaml .Values.worker.service.serviceMonitor.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Values.worker.service.serviceMonitor.namespace | default .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-worker-headless
|
||||||
|
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
|
||||||
|
endpoints:
|
||||||
|
- scheme: http
|
||||||
|
targetPort: actuator-port
|
||||||
|
path: {{ .Values.worker.service.serviceMonitor.path }}
|
||||||
|
interval: {{ .Values.worker.service.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ initImage:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: "dolphinscheduler.docker.scarf.sh/apache"
|
registry: "dolphinscheduler.docker.scarf.sh/apache"
|
||||||
tag: "dev-SNAPSHOT"
|
tag: "3.2.0"
|
||||||
pullPolicy: "IfNotPresent"
|
pullPolicy: "IfNotPresent"
|
||||||
pullSecret: ""
|
pullSecret: ""
|
||||||
master: dolphinscheduler-master
|
master: dolphinscheduler-master
|
||||||
|
|
@ -43,6 +43,7 @@ postgresql:
|
||||||
postgresqlUsername: "root"
|
postgresqlUsername: "root"
|
||||||
postgresqlPassword: "root"
|
postgresqlPassword: "root"
|
||||||
postgresqlDatabase: "dolphinscheduler"
|
postgresqlDatabase: "dolphinscheduler"
|
||||||
|
driverClassName: "org.postgresql.Driver"
|
||||||
params: "characterEncoding=utf8"
|
params: "characterEncoding=utf8"
|
||||||
persistence:
|
persistence:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
@ -51,6 +52,7 @@ postgresql:
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
driverClassName: "com.mysql.cj.jdbc.Driver"
|
||||||
auth:
|
auth:
|
||||||
username: "ds"
|
username: "ds"
|
||||||
password: "ds"
|
password: "ds"
|
||||||
|
|
@ -82,6 +84,7 @@ externalDatabase:
|
||||||
password: "root"
|
password: "root"
|
||||||
database: "dolphinscheduler"
|
database: "dolphinscheduler"
|
||||||
params: "characterEncoding=utf8"
|
params: "characterEncoding=utf8"
|
||||||
|
driverClassName: "org.postgresql.Driver"
|
||||||
|
|
||||||
## If not exists external registry, the zookeeper registry will be used by default.
|
## If not exists external registry, the zookeeper registry will be used by default.
|
||||||
zookeeper:
|
zookeeper:
|
||||||
|
|
@ -94,17 +97,58 @@ zookeeper:
|
||||||
size: "20Gi"
|
size: "20Gi"
|
||||||
storageClass: "-"
|
storageClass: "-"
|
||||||
|
|
||||||
|
etcd:
|
||||||
|
enabled: false
|
||||||
|
endpoints: ""
|
||||||
|
namespace: "dolphinscheduler"
|
||||||
|
user: ""
|
||||||
|
passWord: ""
|
||||||
|
authority: ""
|
||||||
|
# Please create a new folder: deploy/kubernetes/dolphinscheduler/etcd-certs
|
||||||
|
ssl:
|
||||||
|
enabled: false
|
||||||
|
certFile: "etcd-certs/ca.crt"
|
||||||
|
keyCertChainFile: "etcd-certs/client.crt"
|
||||||
|
keyFile: "etcd-certs/client.pem"
|
||||||
|
|
||||||
## If exists external registry and set zookeeper.enable value to false, the external registry will be used.
|
## If exists external registry and set zookeeper.enable value to false, the external registry will be used.
|
||||||
externalRegistry:
|
externalRegistry:
|
||||||
registryPluginName: "zookeeper"
|
registryPluginName: "zookeeper"
|
||||||
registryServers: "127.0.0.1:2181"
|
registryServers: "127.0.0.1:2181"
|
||||||
|
|
||||||
|
security:
|
||||||
|
authentication:
|
||||||
|
type: PASSWORD
|
||||||
|
ldap:
|
||||||
|
urls: ldap://ldap.forumsys.com:389/
|
||||||
|
basedn: dc=example,dc=com
|
||||||
|
username: cn=read-only-admin,dc=example,dc=com
|
||||||
|
password: password
|
||||||
|
user:
|
||||||
|
admin: read-only-admin
|
||||||
|
identityattribute: uid
|
||||||
|
emailattribute: mail
|
||||||
|
notexistaction: CREATE
|
||||||
|
ssl:
|
||||||
|
enable: false
|
||||||
|
# do not change this value
|
||||||
|
truststore: "/opt/ldapkeystore.jks"
|
||||||
|
# if you use macOS, please run `base64 -b 0 -i /path/to/your.jks`
|
||||||
|
# if you use Linux, please run `base64 -w 0 /path/to/your.jks`
|
||||||
|
# if you use Windows, please run `certutil -f -encode /path/to/your.jks`
|
||||||
|
# Then copy the base64 content to below field in one line
|
||||||
|
jksbase64content: ""
|
||||||
|
truststorepassword: ""
|
||||||
|
|
||||||
conf:
|
conf:
|
||||||
|
# auto restart, if true, all components will be restarted automatically after the common configuration is updated. if false, you need to restart the components manually. default is false
|
||||||
|
auto: false
|
||||||
|
# common configuration
|
||||||
common:
|
common:
|
||||||
# user data local directory path, please make sure the directory exists and have read write permissions
|
# user data local directory path, please make sure the directory exists and have read write permissions
|
||||||
data.basedir.path: /tmp/dolphinscheduler
|
data.basedir.path: /tmp/dolphinscheduler
|
||||||
|
|
||||||
# resource storage type: HDFS, S3, OSS, GCS, NONE
|
# resource storage type: HDFS, S3, OSS, GCS, ABS, NONE
|
||||||
resource.storage.type: S3
|
resource.storage.type: S3
|
||||||
|
|
||||||
# resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
|
# resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
|
||||||
|
|
@ -140,6 +184,18 @@ conf:
|
||||||
# oss bucket endpoint, required if you set resource.storage.type=OSS
|
# oss bucket endpoint, required if you set resource.storage.type=OSS
|
||||||
resource.alibaba.cloud.oss.endpoint: https://oss-cn-hangzhou.aliyuncs.com
|
resource.alibaba.cloud.oss.endpoint: https://oss-cn-hangzhou.aliyuncs.com
|
||||||
|
|
||||||
|
# azure storage account name, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.client.id: minioadmin
|
||||||
|
|
||||||
|
# azure storage account key, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.client.secret: minioadmin
|
||||||
|
|
||||||
|
# azure storage subId, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.subId: minioadmin
|
||||||
|
|
||||||
|
# azure storage tenantId, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.tenant.id: minioadmin
|
||||||
|
|
||||||
# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
|
# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
|
||||||
resource.hdfs.root.user: hdfs
|
resource.hdfs.root.user: hdfs
|
||||||
|
|
||||||
|
|
@ -220,11 +276,11 @@ common:
|
||||||
HADOOP_HOME: "/opt/soft/hadoop"
|
HADOOP_HOME: "/opt/soft/hadoop"
|
||||||
HADOOP_CONF_DIR: "/opt/soft/hadoop/etc/hadoop"
|
HADOOP_CONF_DIR: "/opt/soft/hadoop/etc/hadoop"
|
||||||
SPARK_HOME: "/opt/soft/spark"
|
SPARK_HOME: "/opt/soft/spark"
|
||||||
PYTHON_HOME: "/usr/bin/python"
|
PYTHON_LAUNCHER: "/usr/bin/python/bin/python3"
|
||||||
JAVA_HOME: "/opt/java/openjdk"
|
JAVA_HOME: "/opt/java/openjdk"
|
||||||
HIVE_HOME: "/opt/soft/hive"
|
HIVE_HOME: "/opt/soft/hive"
|
||||||
FLINK_HOME: "/opt/soft/flink"
|
FLINK_HOME: "/opt/soft/flink"
|
||||||
DATAX_HOME: "/opt/soft/datax"
|
DATAX_LAUNCHER: "/opt/soft/datax/bin/datax.py"
|
||||||
## Shared storage persistence mounted into api, master and worker, such as Hadoop, Spark, Flink and DataX binary package
|
## Shared storage persistence mounted into api, master and worker, such as Hadoop, Spark, Flink and DataX binary package
|
||||||
sharedStoragePersistence:
|
sharedStoragePersistence:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
@ -244,6 +300,8 @@ common:
|
||||||
storage: "20Gi"
|
storage: "20Gi"
|
||||||
|
|
||||||
master:
|
master:
|
||||||
|
## Enable or disable the Master component
|
||||||
|
enabled: true
|
||||||
## PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down.
|
## PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down.
|
||||||
podManagementPolicy: "Parallel"
|
podManagementPolicy: "Parallel"
|
||||||
## Replicas is the desired number of replicas of the given Template.
|
## Replicas is the desired number of replicas of the given Template.
|
||||||
|
|
@ -314,8 +372,25 @@ master:
|
||||||
MASTER_RESERVED_MEMORY: "0.3"
|
MASTER_RESERVED_MEMORY: "0.3"
|
||||||
MASTER_FAILOVER_INTERVAL: "10m"
|
MASTER_FAILOVER_INTERVAL: "10m"
|
||||||
MASTER_KILL_APPLICATION_WHEN_HANDLE_FAILOVER: "true"
|
MASTER_KILL_APPLICATION_WHEN_HANDLE_FAILOVER: "true"
|
||||||
|
service:
|
||||||
|
# annotations may need to be set when want to scrapy metrics by prometheus but not install prometheus operator
|
||||||
|
annotations: {}
|
||||||
|
# serviceMonitor for prometheus operator
|
||||||
|
serviceMonitor:
|
||||||
|
# -- Enable or disable master serviceMonitor
|
||||||
|
enabled: false
|
||||||
|
# -- @param serviceMonitor.interval interval at which metrics should be scraped
|
||||||
|
interval: 15s
|
||||||
|
# -- @param serviceMonitor.path path of the metrics endpoint
|
||||||
|
path: /actuator/prometheus
|
||||||
|
# -- @param serviceMonitor.labels ServiceMonitor extra labels
|
||||||
|
labels: {}
|
||||||
|
# -- @param serviceMonitor.annotations ServiceMonitor annotations
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
worker:
|
worker:
|
||||||
|
## Enable or disable the Worker component
|
||||||
|
enabled: true
|
||||||
## PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down.
|
## PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down.
|
||||||
podManagementPolicy: "Parallel"
|
podManagementPolicy: "Parallel"
|
||||||
## Replicas is the desired number of replicas of the given Template.
|
## Replicas is the desired number of replicas of the given Template.
|
||||||
|
|
@ -415,9 +490,26 @@ worker:
|
||||||
# - type: Percent
|
# - type: Percent
|
||||||
# value: 100
|
# value: 100
|
||||||
# periodSeconds: 15
|
# periodSeconds: 15
|
||||||
|
service:
|
||||||
|
# annotations may need to be set when want to scrapy metrics by prometheus but not install prometheus operator
|
||||||
|
annotations: {}
|
||||||
|
# serviceMonitor for prometheus operator
|
||||||
|
serviceMonitor:
|
||||||
|
# -- Enable or disable worker serviceMonitor
|
||||||
|
enabled: false
|
||||||
|
# -- @param serviceMonitor.interval interval at which metrics should be scraped
|
||||||
|
interval: 15s
|
||||||
|
# -- @param serviceMonitor.path path of the metrics endpoint
|
||||||
|
path: /actuator/prometheus
|
||||||
|
# -- @param serviceMonitor.labels ServiceMonitor extra labels
|
||||||
|
labels: {}
|
||||||
|
# -- @param serviceMonitor.annotations ServiceMonitor annotations
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
|
||||||
alert:
|
alert:
|
||||||
|
## Enable or disable the Alert-Server component
|
||||||
|
enabled: true
|
||||||
## Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
|
## Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
|
||||||
replicas: 1
|
replicas: 1
|
||||||
## The deployment strategy to use to replace existing pods with new ones.
|
## The deployment strategy to use to replace existing pods with new ones.
|
||||||
|
|
@ -477,8 +569,26 @@ alert:
|
||||||
storage: "20Gi"
|
storage: "20Gi"
|
||||||
env:
|
env:
|
||||||
JAVA_OPTS: "-Xms512m -Xmx512m -Xmn256m"
|
JAVA_OPTS: "-Xms512m -Xmx512m -Xmn256m"
|
||||||
|
service:
|
||||||
|
# annotations may need to be set when want to scrapy metrics by prometheus but not install prometheus operator
|
||||||
|
annotations: {}
|
||||||
|
# serviceMonitor for prometheus operator
|
||||||
|
serviceMonitor:
|
||||||
|
# -- Enable or disable alert-server serviceMonitor
|
||||||
|
enabled: false
|
||||||
|
# -- @param serviceMonitor.interval interval at which metrics should be scraped
|
||||||
|
interval: 15s
|
||||||
|
# -- @param serviceMonitor.path path of the metrics endpoint
|
||||||
|
path: /actuator/prometheus
|
||||||
|
# -- @param serviceMonitor.labels ServiceMonitor extra labels
|
||||||
|
labels: {}
|
||||||
|
# -- @param serviceMonitor.annotations ServiceMonitor annotations
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
|
||||||
api:
|
api:
|
||||||
|
## Enable or disable the API-Server component
|
||||||
|
enabled: true
|
||||||
## Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
|
## Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
|
||||||
replicas: "1"
|
replicas: "1"
|
||||||
## The deployment strategy to use to replace existing pods with new ones.
|
## The deployment strategy to use to replace existing pods with new ones.
|
||||||
|
|
@ -554,6 +664,18 @@ api:
|
||||||
## annotations may need to be set when service.type is LoadBalancer
|
## annotations may need to be set when service.type is LoadBalancer
|
||||||
## service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-1:EXAMPLE_CERT
|
## service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-1:EXAMPLE_CERT
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
# serviceMonitor for prometheus operator
|
||||||
|
serviceMonitor:
|
||||||
|
# -- Enable or disable api-server serviceMonitor
|
||||||
|
enabled: false
|
||||||
|
# -- @param serviceMonitor.interval interval at which metrics should be scraped
|
||||||
|
interval: 15s
|
||||||
|
# -- @param serviceMonitor.path path of the metrics endpoint
|
||||||
|
path: /dolphinscheduler/actuator/prometheus
|
||||||
|
# -- @param serviceMonitor.labels ServiceMonitor extra labels
|
||||||
|
labels: {}
|
||||||
|
# -- @param serviceMonitor.annotations ServiceMonitor annotations
|
||||||
|
annotations: {}
|
||||||
env:
|
env:
|
||||||
JAVA_OPTS: "-Xms512m -Xmx512m -Xmn256m"
|
JAVA_OPTS: "-Xms512m -Xmx512m -Xmn256m"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,67 +2,58 @@
|
||||||
# Manual edits may be lost in future updates.
|
# Manual edits may be lost in future updates.
|
||||||
|
|
||||||
provider "registry.terraform.io/hashicorp/aws" {
|
provider "registry.terraform.io/hashicorp/aws" {
|
||||||
version = "4.42.0"
|
version = "5.1.0"
|
||||||
|
constraints = ">= 4.9.0"
|
||||||
hashes = [
|
hashes = [
|
||||||
"h1:cS7q80JomJrUZpm+bnK5H/iRjF5+7HAA3qgw+JznPiM=",
|
"h1:iDyYmwv8q94Dvr4DRG1KBxTWPZRFkRmKGa3cjCEsPZU=",
|
||||||
"zh:091b64bccee701462b19ca99fe3bff0716e9445a88d0e4d0d0f322062b02bb60",
|
"zh:0c48f157b804c1f392adb5c14b81e756c652755e358096300ea8dd1283021129",
|
||||||
"zh:1fd9b0bf3421ad65284d693e60de068fc9b247d4fa7df6c1d62ad4796088f795",
|
"zh:1a50495a6c0e5665e51df57dac6e781ec71439b11ebf05f971b6f3a3eb4eb7b2",
|
||||||
"zh:3e34e4fcfaa30b04811aaa92c4d6115ddaa820ac11fa82ad217f42ae17a068ea",
|
"zh:2959ff472c05e56d59e012118dd8d55022f005534c0ae961ce81136de9f66a4d",
|
||||||
"zh:47b412ab9cc3730797659ffb775a429b5398a5f403c9cca2ec5f663e21a69077",
|
"zh:2dfda9133581b99ed6e709e89a453fd2974ce88c703d3e073ec31bf99d7508ce",
|
||||||
"zh:8e29e90fdf29d76bb8fab62c184c4ec78e37030277dbe2c0dd97557fdfcbcb50",
|
"zh:2f3d92cc7a6624da42cee2202f8fb23e6d38f156ab7851884d637282cb0dc709",
|
||||||
"zh:8ef4e94b5672234a68649bdbb93416c1829c5cd6f37be584f8e8610f14ca95b0",
|
"zh:3bc2a34d09cbaf439a1815846904f070c782cd8dfd60b5e0116827cda25f7549",
|
||||||
"zh:92a3eb5ae0c2c83717973c56b0427bf1fe8fba3ba72ced01e5eefc5c0cff8bf3",
|
"zh:4ef43f1a247aa8de8690ac3bbc2b00ebaf6b2872fc8d0f5130e4a8130c874b87",
|
||||||
"zh:96b9f714aed24206f8f47af39426aa8c02f172ac6d5516bcc375583d120bf4f8",
|
"zh:5477cb272dcaeb0030091bcf23a9f0f33b5410e44e317e9d3d49446f545dbaa4",
|
||||||
"zh:996ec2065cf0c52b125e3ac8bbd059e5733d8393143cebbb427a236d08c742b4",
|
"zh:734c8fb4c0b79c82dd757566761dda5b91ee1ef9a2b848a748ade11e0e1cc69f",
|
||||||
|
"zh:80346c051b677f4f018da7fe06318b87c5bd0f1ec67ce78ab33baed3bb8b031a",
|
||||||
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||||
"zh:b3abba32ccbea87b6a46e846c878ca0b2e9736dbaedd512a712398ece91de431",
|
"zh:a865b2f88dfee13df14116c5cf53d033d2c15855f4b59b9c65337309a928df2c",
|
||||||
"zh:b77292051d499f66ed80434ac435930204b92ca906c0d38fdb8a0ac37efa25ae",
|
"zh:c0345f266eedaece5612c1000722b302f895d1bc5af1d5a4265f0e7000ca48bb",
|
||||||
"zh:f4ed19b15bd7cd99ee248023a94a10d586e69f81d0d8326d87a79cc37b579a4f",
|
"zh:d59703c8e6a9d8b4fbd3b4583b945dfff9cb2844c762c0b3990e1cef18282279",
|
||||||
"zh:f906a8003e6ad0dd561d8c62e02a65835d8c5009dd7cbfe03e28becced82e5db",
|
"zh:d8d04a6a6cd2dfcb23b57e551db7b15e647f6166310fb7d883d8ec67bdc9bdc8",
|
||||||
"zh:faff211d1559cbae669b63cdd6436a2ef0fb24108d8fa73b625dc5334b50aada",
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "registry.terraform.io/hashicorp/local" {
|
provider "registry.terraform.io/hashicorp/local" {
|
||||||
version = "2.2.3"
|
version = "2.4.0"
|
||||||
hashes = [
|
hashes = [
|
||||||
"h1:KmHz81iYgw9Xn2L3Carc2uAzvFZ1XsE7Js3qlVeC77k=",
|
"h1:ZUEYUmm2t4vxwzxy1BvN1wL6SDWrDxfH7pxtzX8c6d0=",
|
||||||
"zh:04f0978bb3e052707b8e82e46780c371ac1c66b689b4a23bbc2f58865ab7d5c0",
|
"zh:53604cd29cb92538668fe09565c739358dc53ca56f9f11312b9d7de81e48fab9",
|
||||||
"zh:6484f1b3e9e3771eb7cc8e8bab8b35f939a55d550b3f4fb2ab141a24269ee6aa",
|
"zh:66a46e9c508716a1c98efbf793092f03d50049fa4a83cd6b2251e9a06aca2acf",
|
||||||
"zh:78a56d59a013cb0f7eb1c92815d6eb5cf07f8b5f0ae20b96d049e73db915b238",
|
"zh:70a6f6a852dd83768d0778ce9817d81d4b3f073fab8fa570bff92dcb0824f732",
|
||||||
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
|
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
|
||||||
"zh:8aa9950f4c4db37239bcb62e19910c49e47043f6c8587e5b0396619923657797",
|
"zh:82a803f2f484c8b766e2e9c32343e9c89b91997b9f8d2697f9f3837f62926b35",
|
||||||
"zh:996beea85f9084a725ff0e6473a4594deb5266727c5f56e9c1c7c62ded6addbb",
|
"zh:9708a4e40d6cc4b8afd1352e5186e6e1502f6ae599867c120967aebe9d90ed04",
|
||||||
"zh:9a7ef7a21f48fabfd145b2e2a4240ca57517ad155017e86a30860d7c0c109de3",
|
"zh:973f65ce0d67c585f4ec250c1e634c9b22d9c4288b484ee2a871d7fa1e317406",
|
||||||
"zh:a63e70ac052aa25120113bcddd50c1f3cfe61f681a93a50cea5595a4b2cc3e1c",
|
"zh:c8fa0f98f9316e4cfef082aa9b785ba16e36ff754d6aba8b456dab9500e671c6",
|
||||||
"zh:a6e8d46f94108e049ad85dbed60354236dc0b9b5ec8eabe01c4580280a43d3b8",
|
"zh:cfa5342a5f5188b20db246c73ac823918c189468e1382cb3c48a9c0c08fc5bf7",
|
||||||
"zh:bb112ce7efbfcfa0e65ed97fa245ef348e0fd5bfa5a7e4ab2091a9bd469f0a9e",
|
"zh:e0e2b477c7e899c63b06b38cd8684a893d834d6d0b5e9b033cedc06dd7ffe9e2",
|
||||||
"zh:d7bec0da5c094c6955efed100f3fe22fca8866859f87c025be1760feb174d6d9",
|
"zh:f62d7d05ea1ee566f732505200ab38d94315a4add27947a60afa29860822d3fc",
|
||||||
"zh:fb9f271b72094d07cef8154cd3d50e9aa818a0ea39130bc193132ad7b23076fd",
|
"zh:fa7ce69dde358e172bd719014ad637634bbdabc49363104f4fca759b4b73f2ce",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "registry.terraform.io/hashicorp/template" {
|
provider "registry.terraform.io/hashicorp/template" {
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
hashes = [
|
hashes = [
|
||||||
"h1:0wlehNaxBX7GJQnPfQwTNvvAf38Jm0Nv7ssKGMaG6Og=",
|
"h1:C0epDvyWsN2Roo+yua2ltW61FVHEOsXHaM43Fj9bMA8=",
|
||||||
"zh:01702196f0a0492ec07917db7aaa595843d8f171dc195f4c988d2ffca2a06386",
|
|
||||||
"zh:09aae3da826ba3d7df69efeb25d146a1de0d03e951d35019a0f80e4f58c89b53",
|
|
||||||
"zh:09ba83c0625b6fe0a954da6fbd0c355ac0b7f07f86c91a2a97849140fea49603",
|
|
||||||
"zh:0e3a6c8e16f17f19010accd0844187d524580d9fdb0731f675ffcf4afba03d16",
|
|
||||||
"zh:45f2c594b6f2f34ea663704cc72048b212fe7d16fb4cfd959365fa997228a776",
|
|
||||||
"zh:77ea3e5a0446784d77114b5e851c970a3dde1e08fa6de38210b8385d7605d451",
|
|
||||||
"zh:8a154388f3708e3df5a69122a23bdfaf760a523788a5081976b3d5616f7d30ae",
|
|
||||||
"zh:992843002f2db5a11e626b3fc23dc0c87ad3729b3b3cff08e32ffb3df97edbde",
|
|
||||||
"zh:ad906f4cebd3ec5e43d5cd6dc8f4c5c9cc3b33d2243c89c5fc18f97f7277b51d",
|
|
||||||
"zh:c979425ddb256511137ecd093e23283234da0154b7fa8b21c2687182d9aea8b2",
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "registry.terraform.io/hashicorp/tls" {
|
provider "registry.terraform.io/hashicorp/tls" {
|
||||||
version = "4.0.4"
|
version = "4.0.4"
|
||||||
hashes = [
|
hashes = [
|
||||||
"h1:Wd3RqmQW60k2QWPN4sK5CtjGuO1d+CRNXgC+D4rKtXc=",
|
"h1:GZcFizg5ZT2VrpwvxGBHQ/hO9r6g0vYdQqx3bFD3anY=",
|
||||||
"zh:23671ed83e1fcf79745534841e10291bbf34046b27d6e68a5d0aab77206f4a55",
|
"zh:23671ed83e1fcf79745534841e10291bbf34046b27d6e68a5d0aab77206f4a55",
|
||||||
"zh:45292421211ffd9e8e3eb3655677700e3c5047f71d8f7650d2ce30242335f848",
|
"zh:45292421211ffd9e8e3eb3655677700e3c5047f71d8f7650d2ce30242335f848",
|
||||||
"zh:59fedb519f4433c0fdb1d58b27c210b27415fddd0cd73c5312530b4309c088be",
|
"zh:59fedb519f4433c0fdb1d58b27c210b27415fddd0cd73c5312530b4309c088be",
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
Set necessary variables by creating a file `ds-ami.pkrvars.hcl` and adding the following variables according to your own usage.
|
Set necessary variables by creating a file `ds-ami.pkrvars.hcl` and adding the following variables according to your own usage.
|
||||||
|
|
||||||
```hcl
|
```shel
|
||||||
cat <<EOF > ds-ami.pkrvars.hcl
|
cat <<EOF > ds-ami.pkrvars.hcl
|
||||||
aws_access_key = ""
|
aws_access_key = ""
|
||||||
aws_secret_key = ""
|
aws_secret_key = ""
|
||||||
|
|
@ -17,7 +17,7 @@ aws_region = "cn-north-1"
|
||||||
ds_ami_name = "my-test-ds-2"
|
ds_ami_name = "my-test-ds-2"
|
||||||
|
|
||||||
# If you want to use the official distribution tar, just set the `ds_version` to the one you want.
|
# If you want to use the official distribution tar, just set the `ds_version` to the one you want.
|
||||||
ds_version = 3.1.1
|
ds_version = "3.1.1"
|
||||||
|
|
||||||
# If you want to use a locally built distribution tar, set the `ds_tar` to the tar file location.
|
# If you want to use a locally built distribution tar, set the `ds_tar` to the tar file location.
|
||||||
ds_tar = "~/workspace/dolphinscheduler/dolphinscheduler-dist/target/apache-dolphinscheduler-3.1.3-SNAPSHOT-bin.tar.gz"
|
ds_tar = "~/workspace/dolphinscheduler/dolphinscheduler-dist/target/apache-dolphinscheduler-3.1.3-SNAPSHOT-bin.tar.gz"
|
||||||
|
|
@ -50,6 +50,7 @@ Make sure `ds_ami_name` is the same as the one in `ds-ami.pkrvars.hcl` above.
|
||||||
cat <<EOF > terraform.tfvars
|
cat <<EOF > terraform.tfvars
|
||||||
aws_access_key = ""
|
aws_access_key = ""
|
||||||
aws_secret_key = ""
|
aws_secret_key = ""
|
||||||
|
aws_region = ""
|
||||||
|
|
||||||
name_prefix = "test-ds-terraform"
|
name_prefix = "test-ds-terraform"
|
||||||
ds_ami_name = "my-test-ds"
|
ds_ami_name = "my-test-ds"
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ data "template_file" "worker_user_data" {
|
||||||
"database_username" = aws_db_instance.database.username
|
"database_username" = aws_db_instance.database.username
|
||||||
"database_password" = aws_db_instance.database.password
|
"database_password" = aws_db_instance.database.password
|
||||||
"zookeeper_connect_string" = var.zookeeper_connect_string != "" ? var.zookeeper_connect_string : aws_instance.zookeeper[0].private_ip
|
"zookeeper_connect_string" = var.zookeeper_connect_string != "" ? var.zookeeper_connect_string : aws_instance.zookeeper[0].private_ip
|
||||||
|
"alert_server_host" = ""
|
||||||
"s3_access_key_id" = aws_iam_access_key.s3.id
|
"s3_access_key_id" = aws_iam_access_key.s3.id
|
||||||
"s3_secret_access_key" = aws_iam_access_key.s3.secret
|
"s3_secret_access_key" = aws_iam_access_key.s3.secret
|
||||||
"s3_region" = var.aws_region
|
"s3_region" = var.aws_region
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,13 @@ module "s3_bucket" {
|
||||||
source = "terraform-aws-modules/s3-bucket/aws"
|
source = "terraform-aws-modules/s3-bucket/aws"
|
||||||
version = "~> 3.6"
|
version = "~> 3.6"
|
||||||
|
|
||||||
bucket_prefix = var.s3_bucket_prefix
|
bucket_prefix = var.s3_bucket_prefix
|
||||||
acl = "private"
|
acl = "private"
|
||||||
force_destroy = true
|
control_object_ownership = true
|
||||||
attach_policy = true
|
object_ownership = "ObjectWriter"
|
||||||
policy = data.aws_iam_policy_document.s3.json
|
force_destroy = true
|
||||||
|
attach_policy = true
|
||||||
|
policy = data.aws_iam_policy_document.s3.json
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "aws_iam_user" "s3" {
|
resource "aws_iam_user" "s3" {
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ resource "aws_instance" "zookeeper" {
|
||||||
vpc_security_group_ids = [aws_security_group.zookeeper_sg[count.index].id]
|
vpc_security_group_ids = [aws_security_group.zookeeper_sg[count.index].id]
|
||||||
source_dest_check = false
|
source_dest_check = false
|
||||||
associate_public_ip_address = var.vm_associate_public_ip_address.standalone_server
|
associate_public_ip_address = var.vm_associate_public_ip_address.standalone_server
|
||||||
|
key_name = aws_key_pair.key_pair.key_name
|
||||||
|
|
||||||
user_data = data.template_file.zookeeper_user_data.rendered
|
user_data = data.template_file.zookeeper_user_data.rendered
|
||||||
|
|
||||||
|
|
@ -94,7 +95,7 @@ resource "aws_instance" "zookeeper" {
|
||||||
|
|
||||||
connection {
|
connection {
|
||||||
type = "ssh"
|
type = "ssh"
|
||||||
user = "root"
|
user = "ec2-user"
|
||||||
private_key = tls_private_key.key_pair.private_key_pem
|
private_key = tls_private_key.key_pair.private_key_pem
|
||||||
host = self.public_ip
|
host = self.public_ip
|
||||||
timeout = "30s"
|
timeout = "30s"
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -50,6 +50,7 @@ import docs302Config from '../../../site_config/docs3-0-2';
|
||||||
import docs303Config from '../../../site_config/docs3-0-3';
|
import docs303Config from '../../../site_config/docs3-0-3';
|
||||||
import docs304Config from '../../../site_config/docs3-0-4';
|
import docs304Config from '../../../site_config/docs3-0-4';
|
||||||
import docs305Config from '../../../site_config/docs3-0-5';
|
import docs305Config from '../../../site_config/docs3-0-5';
|
||||||
|
import docs306Config from '../../../site_config/docs3-0-6';
|
||||||
import docs310Config from '../../../site_config/docs3-1-0';
|
import docs310Config from '../../../site_config/docs3-1-0';
|
||||||
import docs311Config from '../../../site_config/docs3-1-1';
|
import docs311Config from '../../../site_config/docs3-1-1';
|
||||||
import docs312Config from '../../../site_config/docs3-1-2';
|
import docs312Config from '../../../site_config/docs3-1-2';
|
||||||
|
|
@ -58,6 +59,7 @@ import docs314Config from '../../../site_config/docs3-1-4';
|
||||||
import docs315Config from '../../../site_config/docs3-1-5';
|
import docs315Config from '../../../site_config/docs3-1-5';
|
||||||
import docs316Config from '../../../site_config/docs3-1-6';
|
import docs316Config from '../../../site_config/docs3-1-6';
|
||||||
import docs317Config from '../../../site_config/docs3-1-7';
|
import docs317Config from '../../../site_config/docs3-1-7';
|
||||||
|
import docs318Config from '../../../site_config/docs3-1-8';
|
||||||
import docsDevConfig from '../../../site_config/docsdev';
|
import docsDevConfig from '../../../site_config/docsdev';
|
||||||
|
|
||||||
const docsSource = {
|
const docsSource = {
|
||||||
|
|
@ -84,6 +86,7 @@ const docsSource = {
|
||||||
'3.0.3': docs303Config,
|
'3.0.3': docs303Config,
|
||||||
'3.0.4': docs304Config,
|
'3.0.4': docs304Config,
|
||||||
'3.0.5': docs305Config,
|
'3.0.5': docs305Config,
|
||||||
|
'3.0.6': docs306Config,
|
||||||
'3.1.0': docs310Config,
|
'3.1.0': docs310Config,
|
||||||
'3.1.1': docs311Config,
|
'3.1.1': docs311Config,
|
||||||
'3.1.2': docs312Config,
|
'3.1.2': docs312Config,
|
||||||
|
|
@ -92,6 +95,7 @@ const docsSource = {
|
||||||
'3.1.5': docs315Config,
|
'3.1.5': docs315Config,
|
||||||
'3.1.6': docs316Config,
|
'3.1.6': docs316Config,
|
||||||
'3.1.7': docs317Config,
|
'3.1.7': docs317Config,
|
||||||
|
'3.1.8': docs318Config,
|
||||||
dev: docsDevConfig,
|
dev: docsDevConfig,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ export default {
|
||||||
port: 8080,
|
port: 8080,
|
||||||
domain: 'dolphinscheduler.apache.org',
|
domain: 'dolphinscheduler.apache.org',
|
||||||
copyToDist: ['asset', 'img', 'file', '.asf.yaml', 'sitemap.xml', '.nojekyll', '.htaccess', 'googled0df7b96f277a143.html'],
|
copyToDist: ['asset', 'img', 'file', '.asf.yaml', 'sitemap.xml', '.nojekyll', '.htaccess', 'googled0df7b96f277a143.html'],
|
||||||
docsLatest: '3.1.7',
|
docsLatest: '3.1.8',
|
||||||
defaultSearch: 'google', // default search engine
|
defaultSearch: 'google', // default search engine
|
||||||
defaultLanguage: 'en-us',
|
defaultLanguage: 'en-us',
|
||||||
'en-us': {
|
'en-us': {
|
||||||
|
|
@ -45,13 +45,13 @@ export default {
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
key: 'docs0',
|
key: 'docs0',
|
||||||
text: 'latest(3.1.7)',
|
text: 'latest(3.1.8)',
|
||||||
link: '/en-us/docs/latest/user_doc/about/introduction.html',
|
link: '/en-us/docs/latest/user_doc/about/introduction.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'docs1',
|
key: 'docs1',
|
||||||
text: '3.0.5',
|
text: '3.0.6',
|
||||||
link: '/en-us/docs/3.0.5/user_doc/about/introduction.html',
|
link: '/en-us/docs/3.0.6/user_doc/about/introduction.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'docs2',
|
key: 'docs2',
|
||||||
|
|
@ -173,13 +173,13 @@ export default {
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
key: 'docs0',
|
key: 'docs0',
|
||||||
text: '最新版本latest(3.1.7)',
|
text: '最新版本latest(3.1.8)',
|
||||||
link: '/zh-cn/docs/latest/user_doc/about/introduction.html',
|
link: '/zh-cn/docs/latest/user_doc/about/introduction.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'docs1',
|
key: 'docs1',
|
||||||
text: '3.0.5',
|
text: '3.0.6',
|
||||||
link: '/zh-cn/docs/3.0.5/user_doc/about/introduction.html',
|
link: '/zh-cn/docs/3.0.6/user_doc/about/introduction.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'docs2',
|
key: 'docs2',
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ The directory structure of DolphinScheduler is as follows:
|
||||||
├── alert-server directory of DolphinScheduler alert-server commands, configurations scripts and libs
|
├── alert-server directory of DolphinScheduler alert-server commands, configurations scripts and libs
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh script to start DolphinScheduler alert-server
|
│ │ └── start.sh script to start DolphinScheduler alert-server
|
||||||
|
│ │ └── jvm_args_env.sh script to set JVM args of DolphinScheduler alert-server
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml configurations of alert-server
|
│ │ ├── application.yaml configurations of alert-server
|
||||||
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
||||||
|
|
@ -43,6 +44,7 @@ The directory structure of DolphinScheduler is as follows:
|
||||||
├── api-server directory of DolphinScheduler api-server commands, configurations scripts and libs
|
├── api-server directory of DolphinScheduler api-server commands, configurations scripts and libs
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh script to start DolphinScheduler api-server
|
│ │ └── start.sh script to start DolphinScheduler api-server
|
||||||
|
│ │ └── jvm_args_env.sh script to set JVM args of DolphinScheduler api-server
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml configurations of api-server
|
│ │ ├── application.yaml configurations of api-server
|
||||||
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
||||||
|
|
@ -55,6 +57,7 @@ The directory structure of DolphinScheduler is as follows:
|
||||||
├── master-server directory of DolphinScheduler master-server commands, configurations scripts and libs
|
├── master-server directory of DolphinScheduler master-server commands, configurations scripts and libs
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh script to start DolphinScheduler master-server
|
│ │ └── start.sh script to start DolphinScheduler master-server
|
||||||
|
│ │ └── jvm_args_env.sh script to set JVM args of DolphinScheduler master-server
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml configurations of master-server
|
│ │ ├── application.yaml configurations of master-server
|
||||||
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
||||||
|
|
@ -66,6 +69,7 @@ The directory structure of DolphinScheduler is as follows:
|
||||||
├── standalone-server directory of DolphinScheduler standalone-server commands, configurations scripts and libs
|
├── standalone-server directory of DolphinScheduler standalone-server commands, configurations scripts and libs
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh script to start DolphinScheduler standalone-server
|
│ │ └── start.sh script to start DolphinScheduler standalone-server
|
||||||
|
│ │ └── jvm_args_env.sh script to set JVM args of DolphinScheduler standalone-server
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml configurations of standalone-server
|
│ │ ├── application.yaml configurations of standalone-server
|
||||||
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
||||||
|
|
@ -86,15 +90,16 @@ The directory structure of DolphinScheduler is as follows:
|
||||||
│ └── sql .sql files to create or upgrade DolphinScheduler metadata
|
│ └── sql .sql files to create or upgrade DolphinScheduler metadata
|
||||||
│
|
│
|
||||||
├── worker-server directory of DolphinScheduler worker-server commands, configurations scripts and libs
|
├── worker-server directory of DolphinScheduler worker-server commands, configurations scripts and libs
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh script to start DolphinScheduler worker-server
|
│ │ └── start.sh script to start DolphinScheduler worker-server
|
||||||
│ ├── conf
|
│ │ └── jvm_args_env.sh script to set JVM args of DolphinScheduler worker-server
|
||||||
│ │ ├── application.yaml configurations of worker-server
|
│ ├── conf
|
||||||
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
│ │ ├── application.yaml configurations of worker-server
|
||||||
│ │ ├── common.properties configurations of common-service like storage, credentials, etc.
|
│ │ ├── bootstrap.yaml configurations for Spring Cloud bootstrap, mostly you don't need to modify this,
|
||||||
│ │ ├── dolphinscheduler_env.sh script to load environment variables for worker-server
|
│ │ ├── common.properties configurations of common-service like storage, credentials, etc.
|
||||||
│ │ └── logback-spring.xml configurations of worker-service log
|
│ │ ├── dolphinscheduler_env.sh script to load environment variables for worker-server
|
||||||
│ └── libs directory of worker-server libs
|
│ │ └── logback-spring.xml configurations of worker-service log
|
||||||
|
│ └── libs directory of worker-server libs
|
||||||
│
|
│
|
||||||
└── ui directory of front-end web resources
|
└── ui directory of front-end web resources
|
||||||
```
|
```
|
||||||
|
|
@ -124,6 +129,7 @@ export DOLPHINSCHEDULER_OPTS="
|
||||||
```
|
```
|
||||||
|
|
||||||
> "-XX:DisableExplicitGC" is not recommended due to may lead to memory link (DolphinScheduler dependent on Netty to communicate).
|
> "-XX:DisableExplicitGC" is not recommended due to may lead to memory link (DolphinScheduler dependent on Netty to communicate).
|
||||||
|
> If add "-Djava.net.preferIPv6Addresses=true" will use ipv6 address, if add "-Djava.net.preferIPv4Addresses=true" will use ipv4 address, if doesn't set the two parameter will use ipv4 or ipv6.
|
||||||
|
|
||||||
### Database connection related configuration
|
### Database connection related configuration
|
||||||
|
|
||||||
|
|
@ -194,37 +200,38 @@ Currently, common.properties mainly configures Hadoop,s3a related configurations
|
||||||
|
|
||||||
The default configuration is as follows:
|
The default configuration is as follows:
|
||||||
|
|
||||||
| Parameters | Default value | Description |
|
| Parameters | Default value | Description |
|
||||||
|--|--|--|
|
|-----------------------------------------------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|data.basedir.path | /tmp/dolphinscheduler | local directory used to store temp files|
|
| data.basedir.path | /tmp/dolphinscheduler | local directory used to store temp files |
|
||||||
|resource.storage.type | NONE | type of resource files: HDFS, S3, OSS, GCS, NONE|
|
| resource.storage.type | NONE | type of resource files: HDFS, S3, OSS, GCS, ABS, NONE |
|
||||||
|resource.upload.path | /dolphinscheduler | storage path of resource files|
|
| resource.upload.path | /dolphinscheduler | storage path of resource files |
|
||||||
|aws.access.key.id | minioadmin | access key id of S3|
|
| aws.access.key.id | minioadmin | access key id of S3 |
|
||||||
|aws.secret.access.key | minioadmin | secret access key of S3|
|
| aws.secret.access.key | minioadmin | secret access key of S3 |
|
||||||
|aws.region | us-east-1 | region of S3|
|
| aws.region | us-east-1 | region of S3 |
|
||||||
|aws.s3.endpoint | http://minio:9000 | endpoint of S3|
|
| aws.s3.endpoint | http://minio:9000 | endpoint of S3 |
|
||||||
|hdfs.root.user | hdfs | configure users with corresponding permissions if storage type is HDFS|
|
| hdfs.root.user | hdfs | configure users with corresponding permissions if storage type is HDFS |
|
||||||
|fs.defaultFS | hdfs://mycluster:8020 | If resource.storage.type=S3, then the request url would be similar to 's3a://dolphinscheduler'. Otherwise if resource.storage.type=HDFS and hadoop supports HA, copy core-site.xml and hdfs-site.xml into 'conf' directory|
|
| fs.defaultFS | hdfs://mycluster:8020 | If resource.storage.type=S3, then the request url would be similar to 's3a://dolphinscheduler'. Otherwise if resource.storage.type=HDFS and hadoop supports HA, copy core-site.xml and hdfs-site.xml into 'conf' directory |
|
||||||
|hadoop.security.authentication.startup.state | false | whether hadoop grant kerberos permission|
|
| hadoop.security.authentication.startup.state | false | whether hadoop grant kerberos permission |
|
||||||
|java.security.krb5.conf.path | /opt/krb5.conf | kerberos config directory|
|
| java.security.krb5.conf.path | /opt/krb5.conf | kerberos config directory |
|
||||||
|login.user.keytab.username | hdfs-mycluster@ESZ.COM | kerberos username|
|
| login.user.keytab.username | hdfs-mycluster@ESZ.COM | kerberos username |
|
||||||
|login.user.keytab.path | /opt/hdfs.headless.keytab | kerberos user keytab|
|
| login.user.keytab.path | /opt/hdfs.headless.keytab | kerberos user keytab |
|
||||||
|kerberos.expire.time | 2 | kerberos expire time,integer,the unit is hour|
|
| kerberos.expire.time | 2 | kerberos expire time,integer,the unit is hour |
|
||||||
|yarn.resourcemanager.ha.rm.ids | 192.168.xx.xx,192.168.xx.xx | specify the yarn resourcemanager url. if resourcemanager supports HA, input HA IP addresses (separated by comma), or input null for standalone|
|
| yarn.resourcemanager.ha.rm.ids | 192.168.xx.xx,192.168.xx.xx | specify the yarn resourcemanager url. if resourcemanager supports HA, input HA IP addresses (separated by comma), or input null for standalone |
|
||||||
|yarn.application.status.address | http://ds1:8088/ws/v1/cluster/apps/%s | keep default if ResourceManager supports HA or not use ResourceManager, or replace ds1 with corresponding hostname if ResourceManager in standalone mode|
|
| yarn.application.status.address | http://ds1:8088/ws/v1/cluster/apps/%s | keep default if ResourceManager supports HA or not use ResourceManager, or replace ds1 with corresponding hostname if ResourceManager in standalone mode |
|
||||||
|development.state | false | specify whether in development state|
|
| development.state | false | specify whether in development state |
|
||||||
|dolphin.scheduler.network.interface.preferred | NONE | display name of the network card|
|
| dolphin.scheduler.network.interface.preferred | NONE | display name of the network card which will be used |
|
||||||
|dolphin.scheduler.network.priority.strategy | default | IP acquisition strategy, give priority to finding the internal network or the external network|
|
| dolphin.scheduler.network.interface.restrict | docker0 | display name of the network card which shouldn't be used |
|
||||||
|resource.manager.httpaddress.port | 8088 | the port of resource manager|
|
| dolphin.scheduler.network.priority.strategy | default | IP acquisition strategy, give priority to finding the internal network or the external network |
|
||||||
|yarn.job.history.status.address | http://ds1:19888/ws/v1/history/mapreduce/jobs/%s | job history status url of yarn|
|
| resource.manager.httpaddress.port | 8088 | the port of resource manager |
|
||||||
|datasource.encryption.enable | false | whether to enable datasource encryption|
|
| yarn.job.history.status.address | http://ds1:19888/ws/v1/history/mapreduce/jobs/%s | job history status url of yarn |
|
||||||
|datasource.encryption.salt | !@#$%^&* | the salt of the datasource encryption|
|
| datasource.encryption.enable | false | whether to enable datasource encryption |
|
||||||
|data-quality.jar.name | dolphinscheduler-data-quality-dev-SNAPSHOT.jar | the jar of data quality|
|
| datasource.encryption.salt | !@#$%^&* | the salt of the datasource encryption |
|
||||||
|support.hive.oneSession | false | specify whether hive SQL is executed in the same session|
|
| data-quality.jar.name | dolphinscheduler-data-quality-dev-SNAPSHOT.jar | the jar of data quality |
|
||||||
|sudo.enable | true | whether to enable sudo|
|
| support.hive.oneSession | false | specify whether hive SQL is executed in the same session |
|
||||||
|alert.rpc.port | 50052 | the RPC port of Alert Server|
|
| sudo.enable | true | whether to enable sudo |
|
||||||
|zeppelin.rest.url | http://localhost:8080 | the RESTful API url of zeppelin|
|
| alert.rpc.port | 50052 | the RPC port of Alert Server |
|
||||||
|appId.collect | log | way to collect applicationId, if use aop, alter the configuration from log to aop, annotation of applicationId auto collection related configuration in `bin/env/dolphinscheduler_env.sh` should be removed. Note: Aop way doesn't support submitting yarn job on remote host by client mode like Beeline, and will failure if override applicationId collection-related environment configuration in dolphinscheduler_env.sh, and .|
|
| zeppelin.rest.url | http://localhost:8080 | the RESTful API url of zeppelin |
|
||||||
|
| appId.collect | log | way to collect applicationId, if use aop, alter the configuration from log to aop, annotation of applicationId auto collection related configuration in `bin/env/dolphinscheduler_env.sh` should be removed. Note: Aop way doesn't support submitting yarn job on remote host by client mode like Beeline, and will failure if override applicationId collection-related environment configuration in dolphinscheduler_env.sh, and . |
|
||||||
|
|
||||||
### Api-server related configuration
|
### Api-server related configuration
|
||||||
|
|
||||||
|
|
@ -251,11 +258,22 @@ Location: `api-server/conf/application.yaml`
|
||||||
|security.authentication.ldap.user.identity-attribute|uid|LDAP user identity attribute|
|
|security.authentication.ldap.user.identity-attribute|uid|LDAP user identity attribute|
|
||||||
|security.authentication.ldap.user.email-attribute|mail|LDAP user email attribute|
|
|security.authentication.ldap.user.email-attribute|mail|LDAP user email attribute|
|
||||||
|security.authentication.ldap.user.not-exist-action|CREATE|action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY)|
|
|security.authentication.ldap.user.not-exist-action|CREATE|action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY)|
|
||||||
|traffic.control.global.switch|false|traffic control global switch|
|
|security.authentication.ldap.ssl.enable|false|LDAP switch|
|
||||||
|traffic.control.max-global-qps-rate|300|global max request number per second|
|
|security.authentication.ldap.ssl.trust-store|ldapkeystore.jks|LDAP jks file absolute path|
|
||||||
|traffic.control.tenant-switch|false|traffic control tenant switch|
|
|security.authentication.ldap.ssl.trust-store-password|password|LDAP jks password|
|
||||||
|traffic.control.default-tenant-qps-rate|10|default tenant max request number per second|
|
|security.authentication.casdoor.user.admin||admin user account when you log-in with Casdoor|
|
||||||
|traffic.control.customize-tenant-qps-rate||customize tenant max request number per second|
|
|casdoor.endpoint||Casdoor server url|
|
||||||
|
|casdoor.client-id||id in Casdoor|
|
||||||
|
|casdoor.client-secret||secret in Casdoor|
|
||||||
|
|casdoor.certificate||certificate in Casdoor|
|
||||||
|
|casdoor.organization-name||organization name in Casdoor|
|
||||||
|
|casdoor.application-name||application name in Casdoor|
|
||||||
|
|casdoor.redirect-url||doplhinscheduler login url|
|
||||||
|
|api.traffic.control.global.switch|false|traffic control global switch|
|
||||||
|
|api.traffic.control.max-global-qps-rate|300|global max request number per second|
|
||||||
|
|api.traffic.control.tenant-switch|false|traffic control tenant switch|
|
||||||
|
|api.traffic.control.default-tenant-qps-rate|10|default tenant max request number per second|
|
||||||
|
|api.traffic.control.customize-tenant-qps-rate||customize tenant max request number per second|
|
||||||
|
|
||||||
### Master Server related configuration
|
### Master Server related configuration
|
||||||
|
|
||||||
|
|
@ -365,12 +383,12 @@ export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
|
||||||
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
||||||
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
||||||
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
||||||
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
|
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
|
||||||
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
||||||
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
||||||
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
|
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
|
||||||
|
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
|
|
||||||
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
||||||
export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ When the preparation is complete, it is time for the formal test case writing. W
|
||||||
|
|
||||||
The rest are similar cases and can be understood by referring to the specific source code.
|
The rest are similar cases and can be understood by referring to the specific source code.
|
||||||
|
|
||||||
https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/cases
|
https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api/test/cases
|
||||||
|
|
||||||
## Supplements
|
## Supplements
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ If you are using MySQL or ORACLE data source, you need to place the correspondin
|
||||||
|
|
||||||
org.apache.dolphinscheduler.spi.datasource.DataSourceChannel
|
org.apache.dolphinscheduler.spi.datasource.DataSourceChannel
|
||||||
org.apache.dolphinscheduler.spi.datasource.DataSourceChannelFactory
|
org.apache.dolphinscheduler.spi.datasource.DataSourceChannelFactory
|
||||||
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient
|
org.apache.dolphinscheduler.spi.datasource.client.DataSourceClient
|
||||||
|
|
||||||
1. In the first step, the data source plug-in can implement the above interfaces and inherit the general client. For details, refer to the implementation of data source plug-ins such as sqlserver and mysql. The addition methods of all RDBMS plug-ins are the same.
|
1. In the first step, the data source plug-in can implement the above interfaces and inherit the general client. For details, refer to the implementation of data source plug-ins such as sqlserver and mysql. The addition methods of all RDBMS plug-ins are the same.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,12 +65,12 @@ cd dolphinscheduler
|
||||||
./mvnw -B clean package \
|
./mvnw -B clean package \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dmaven.checkstyle.skip \
|
-Dspotless.skip = true \
|
||||||
-Ddocker.tag=<TAG> \
|
-Ddocker.tag=<TAG> \
|
||||||
-Pdocker,release
|
-Pdocker,release
|
||||||
```
|
```
|
||||||
|
|
||||||
When the command is finished you could find them by command `docker imaegs`.
|
When the command is finished you could find them by command `docker images`.
|
||||||
|
|
||||||
- If you want to modify DolphinScheduler source code, build and push Docker images to your registry <HUB_URL>,you can run when finished the modification
|
- If you want to modify DolphinScheduler source code, build and push Docker images to your registry <HUB_URL>,you can run when finished the modification
|
||||||
|
|
||||||
|
|
@ -79,7 +79,7 @@ cd dolphinscheduler
|
||||||
./mvnw -B clean deploy \
|
./mvnw -B clean deploy \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dmaven.checkstyle.skip \
|
-Dspotless.skip = true \
|
||||||
-Dmaven.deploy.skip \
|
-Dmaven.deploy.skip \
|
||||||
-Ddocker.tag=<TAG> \
|
-Ddocker.tag=<TAG> \
|
||||||
-Ddocker.hub=<HUB_URL> \
|
-Ddocker.hub=<HUB_URL> \
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ git push "${GH_REMOTE}" "${VERSION}"-release
|
||||||
> first to clone the source code. And then make sure you set `GH_REMOTE="origin"` to make all command work fine.
|
> first to clone the source code. And then make sure you set `GH_REMOTE="origin"` to make all command work fine.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DdryRun=true -Dusername="${GH_USERNAME}"
|
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dspotless.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DdryRun=true -Dusername="${GH_USERNAME}"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `-Prelease`: choose release profile, which will pack all the source codes, jar files and executable binary packages.
|
- `-Prelease`: choose release profile, which will pack all the source codes, jar files and executable binary packages.
|
||||||
|
|
@ -226,7 +226,7 @@ mvn release:clean
|
||||||
Then, prepare to execute the release.
|
Then, prepare to execute the release.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DpushChanges=false -Dusername="${GH_USERNAME}"
|
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dspotless.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DpushChanges=false -Dusername="${GH_USERNAME}"
|
||||||
```
|
```
|
||||||
|
|
||||||
It is basically the same as the previous rehearsal command, but deleting `-DdryRun=true` parameter.
|
It is basically the same as the previous rehearsal command, but deleting `-DdryRun=true` parameter.
|
||||||
|
|
@ -258,7 +258,7 @@ git push "${GH_REMOTE}" --tags
|
||||||
#### Maven Release Deploy
|
#### Maven Release Deploy
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mvn release:perform -Prelease -Darguments="-Dmaven.test.skip=true -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -Dusername="${GH_USERNAME}"
|
mvn release:perform -Prelease -Darguments="-Dmaven.test.skip=true -Dspotless.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -Dusername="${GH_USERNAME}"
|
||||||
```
|
```
|
||||||
|
|
||||||
After that command is executed, the version to be released will be uploaded to Apache staging repository automatically.
|
After that command is executed, the version to be released will be uploaded to Apache staging repository automatically.
|
||||||
|
|
|
||||||
|
|
@ -220,16 +220,16 @@ A: 1, in **the process definition list**, click the **Start** button.
|
||||||
|
|
||||||
## Q : Python task setting Python version
|
## Q : Python task setting Python version
|
||||||
|
|
||||||
A: 1,**for the version after 1.0.3** only need to modify PYTHON_HOME in `bin/env/dolphinscheduler_env.sh`
|
A: 1,**for the version after 1.0.3** only need to modify `$PYTHON_LAUNCHER` in `bin/env/dolphinscheduler_env.sh`
|
||||||
|
|
||||||
```
|
```
|
||||||
export PYTHON_HOME=/bin/python
|
export PYTHON_LAUNCHER=/bin/python/bin/python3
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: This is **PYTHON_HOME** , which is the absolute path of the python command, not the simple PYTHON_HOME. Also note that when exporting the PATH, you need to directly
|
Note: This is **PYTHON_LAUNCHER** , which is the absolute path of the python command, not the simple PYTHON_LAUNCHER. Also note that when exporting the PATH, you need to directly
|
||||||
|
|
||||||
```
|
```
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
|
||||||
```
|
```
|
||||||
|
|
||||||
2,For versions prior to 1.0.3, the Python task only supports the Python version of the system. It does not support specifying the Python version.
|
2,For versions prior to 1.0.3, the Python task only supports the Python version of the system. It does not support specifying the Python version.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# DORIS
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Datasource Parameters
|
||||||
|
|
||||||
|
| **Datasource** | **Description** |
|
||||||
|
|----------------------------|---------------------------------------------------------------------------------------|
|
||||||
|
| Datasource | Select DORIS. |
|
||||||
|
| Datasource name | Enter the name of the DataSource. |
|
||||||
|
| Description | Enter a description of the DataSource. |
|
||||||
|
| IP/Host Name | Enter the DORIS service IP.(If there are multiple IPs, please separate them with `,`) |
|
||||||
|
| Port | Enter the DORIS service port. |
|
||||||
|
| Username | Set the username for DORIS connection. |
|
||||||
|
| Password | Set the password for DORIS connection. |
|
||||||
|
| Database name | Enter the database name of the DORIS connection. |
|
||||||
|
| Jdbc connection parameters | Parameter settings for DORIS connection, in JSON format. |
|
||||||
|
|
||||||
|
## Native Supported
|
||||||
|
|
||||||
|
No, read section example in [datasource-setting](../howto/datasource-setting.md) `DataSource Center` section to activate
|
||||||
|
this datasource.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
# HANA
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Datasource Parameters
|
||||||
|
|
||||||
|
| **Datasource** | **Description** |
|
||||||
|
|----------------------------|---------------------------------------------------------|
|
||||||
|
| Datasource | Select HANA. |
|
||||||
|
| Datasource name | Enter the name of the DataSource. |
|
||||||
|
| Description | Enter a description of the DataSource. |
|
||||||
|
| IP/Host Name | Enter the HANA service IP. |
|
||||||
|
| Port | Enter the HANA service port. |
|
||||||
|
| Username | Set the username for HANA connection. |
|
||||||
|
| Password | Set the password for HANA connection. |
|
||||||
|
| Database name | Enter the database name of the HANA connection. |
|
||||||
|
| Jdbc connection parameters | Parameter settings for HANA connection, in JSON format. |
|
||||||
|
|
||||||
|
## Native Supported
|
||||||
|
|
||||||
|
No, read section example in [datasource-setting](../howto/datasource-setting.md) `DataSource Center` section to activate this datasource.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Vertica
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Datasource Parameters
|
||||||
|
|
||||||
|
| **Parameter** | **Description** |
|
||||||
|
|----------------------------|------------------------------------------------------------|
|
||||||
|
| Datasource | Select VERTICA. |
|
||||||
|
| Datasource Name | Enter the name of the DataSource. |
|
||||||
|
| Description | Enter a description of the DataSource. |
|
||||||
|
| IP/Host Name | Enter the Vertica service IP. |
|
||||||
|
| Port | Enter the Vertica service port. |
|
||||||
|
| Username | Set the username for Vertica connection. |
|
||||||
|
| Password | Set the password for Vertica connection. |
|
||||||
|
| Database name | Enter the database name of the Vertica connection. |
|
||||||
|
| Jdbc connection parameters | Parameter settings for Vertica connection, in JSON format. |
|
||||||
|
|
||||||
|
## Native Supported
|
||||||
|
|
||||||
|
Yes, could use this datasource by default.
|
||||||
|
|
@ -30,9 +30,9 @@ Attention: DolphinScheduler itself does not depend on Hadoop, Hive, Spark, but w
|
||||||
mkdir -p /opt
|
mkdir -p /opt
|
||||||
cd /opt
|
cd /opt
|
||||||
# decompress
|
# decompress
|
||||||
tar -zxvf apache-dolphinscheduler-<version>-bin.tar.gz -C /opt
|
tar -zxvf apache-dolphinscheduler-3.2.0-bin.tar.gz -C /opt
|
||||||
cd /opt
|
cd /opt
|
||||||
mv apache-dolphinscheduler-<version>-bin dolphinscheduler
|
mv apache-dolphinscheduler-3.2.0-bin dolphinscheduler
|
||||||
```
|
```
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
|
|
@ -80,12 +80,12 @@ Attention:
|
||||||
export HADOOP_HOME=/opt/soft/hadoop
|
export HADOOP_HOME=/opt/soft/hadoop
|
||||||
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
|
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
|
||||||
export SPARK_HOME=/opt/soft/spark
|
export SPARK_HOME=/opt/soft/spark
|
||||||
export PYTHON_HOME=/opt/soft/python
|
export PYTHON_LAUNCHER=/opt/soft/python/bin/python3
|
||||||
export JAVA_HOME=/opt/soft/jav
|
export JAVA_HOME=/opt/soft/jav
|
||||||
export HIVE_HOME=/opt/soft/hive
|
export HIVE_HOME=/opt/soft/hive
|
||||||
export FLINK_HOME=/opt/soft/flink
|
export FLINK_HOME=/opt/soft/flink
|
||||||
export DATAX_HOME=/opt/soft/datax/bin/datax.py
|
export DATAX_LAUNCHER=/opt/soft/datax/bin/datax.py
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,16 +12,16 @@ If you are a new hand and want to experience DolphinScheduler functions, we reco
|
||||||
|
|
||||||
## Install DolphinScheduler
|
## Install DolphinScheduler
|
||||||
|
|
||||||
Please download the source code package `apache-dolphinscheduler-<version>-src.tar.gz`, download address: [download address](https://dolphinscheduler.apache.org/en-us/download)
|
Please download the source code package `apache-dolphinscheduler-3.2.0-src.tar.gz`, download address: [download address](https://dolphinscheduler.apache.org/en-us/download)
|
||||||
|
|
||||||
To publish the release name `dolphinscheduler` version, please execute the following commands:
|
To publish the release name `dolphinscheduler` version, please execute the following commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ tar -zxvf apache-dolphinscheduler-<version>-src.tar.gz
|
$ tar -zxvf apache-dolphinscheduler-3.2.0-src.tar.gz
|
||||||
$ cd apache-dolphinscheduler-<version>-src/deploy/kubernetes/dolphinscheduler
|
$ cd apache-dolphinscheduler-3.2.0-src/deploy/kubernetes/dolphinscheduler
|
||||||
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
$ helm dependency update .
|
$ helm dependency update .
|
||||||
$ helm install dolphinscheduler . --set image.tag=<version>
|
$ helm install dolphinscheduler . --set image.tag=3.2.0
|
||||||
```
|
```
|
||||||
|
|
||||||
To publish the release name `dolphinscheduler` version to `test` namespace:
|
To publish the release name `dolphinscheduler` version to `test` namespace:
|
||||||
|
|
@ -232,9 +232,9 @@ kubectl scale --replicas=6 sts dolphinscheduler-worker -n test # with test names
|
||||||
2. Create a new `Dockerfile` to add MySQL driver:
|
2. Create a new `Dockerfile` to add MySQL driver:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:3.2.0
|
||||||
# For example
|
# For example
|
||||||
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:<version>
|
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:3.2.0
|
||||||
|
|
||||||
# Attention Please, If the build is dolphinscheduler-tools image
|
# Attention Please, If the build is dolphinscheduler-tools image
|
||||||
# You need to change the following line to: COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/tools/libs
|
# You need to change the following line to: COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/tools/libs
|
||||||
|
|
@ -283,9 +283,9 @@ externalDatabase:
|
||||||
2. Create a new `Dockerfile` to add MySQL or Oracle driver:
|
2. Create a new `Dockerfile` to add MySQL or Oracle driver:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:3.2.0
|
||||||
# For example
|
# For example
|
||||||
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:<version>
|
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.2.0
|
||||||
|
|
||||||
# If you want to support MySQL Datasource
|
# If you want to support MySQL Datasource
|
||||||
COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/libs
|
COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/libs
|
||||||
|
|
@ -315,7 +315,7 @@ docker build -t apache/dolphinscheduler-<service>:new-driver .
|
||||||
1. Create a new `Dockerfile` to install pip:
|
1. Create a new `Dockerfile` to install pip:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.2.0
|
||||||
COPY requirements.txt /tmp
|
COPY requirements.txt /tmp
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends python-pip && \
|
apt-get install -y --no-install-recommends python-pip && \
|
||||||
|
|
@ -350,7 +350,7 @@ docker build -t apache/dolphinscheduler-worker:pip .
|
||||||
1. Create a new `Dockerfile` to install Python 3:
|
1. Create a new `Dockerfile` to install Python 3:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.2.0
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends python3 && \
|
apt-get install -y --no-install-recommends python3 && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
@ -372,7 +372,7 @@ docker build -t apache/dolphinscheduler-worker:python3 .
|
||||||
|
|
||||||
4. Modify image `repository` and update `tag` to `python3` in `values.yaml`.
|
4. Modify image `repository` and update `tag` to `python3` in `values.yaml`.
|
||||||
|
|
||||||
5. Modify `PYTHON_HOME` to `/usr/bin/python3` in `values.yaml`.
|
5. Modify `PYTHON_LAUNCHER` to `/usr/bin/python3` in `values.yaml`.
|
||||||
|
|
||||||
6. Run a DolphinScheduler release in Kubernetes (See **Install DolphinScheduler**).
|
6. Run a DolphinScheduler release in Kubernetes (See **Install DolphinScheduler**).
|
||||||
|
|
||||||
|
|
@ -514,6 +514,31 @@ common:
|
||||||
SW_GRPC_LOG_SERVER_PORT: "11800"
|
SW_GRPC_LOG_SERVER_PORT: "11800"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### How to deploy specific components separately?
|
||||||
|
|
||||||
|
Modify the `api.enabled`, `alert.enabled`, `master.enabled`, or `worker.enabled` configuration items in the `values.yaml` file.
|
||||||
|
|
||||||
|
For example, if you need to deploy worker to both CPU and GPU servers in a cluster, and the worker uses different images, you can do the following:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install master, api-server, alert-server, and other default components, but do not install worker
|
||||||
|
helm install dolphinscheduler . --set worker.enabled=false
|
||||||
|
# Disable the installation of other components, only install worker, use the self-built CPU image, deploy to CPU servers with the `x86` label through nodeselector, and use zookeeper as the external registry center
|
||||||
|
helm install dolphinscheduler-cpu-worker . \
|
||||||
|
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
|
||||||
|
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
|
||||||
|
--set worker.enabled=true --set image.tag=latest-cpu --set worker.nodeSelector.cpu="x86" \
|
||||||
|
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
|
||||||
|
# Disable the installation of other components, only install worker, use the self-built GPU image, deploy to GPU servers with the `a100` label through nodeselector, and use zookeeper as the external registry center
|
||||||
|
helm install dolphinscheduler-gpu-worker . \
|
||||||
|
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
|
||||||
|
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
|
||||||
|
--set worker.enabled=true --set image.tag=latest-gpu --set worker.nodeSelector.gpu="a100" \
|
||||||
|
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
|
||||||
|
```
|
||||||
|
|
||||||
|
Please note that the above steps are for reference only, and specific operations need to be adjusted according to the actual situation.
|
||||||
|
|
||||||
## Appendix-Configuration
|
## Appendix-Configuration
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
|
|
@ -553,7 +578,7 @@ common:
|
||||||
| | | |
|
| | | |
|
||||||
| `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` |
|
| `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` |
|
||||||
| `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` |
|
| `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` |
|
||||||
| `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, NONE | `HDFS` |
|
| `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, ABS, NONE | `HDFS` |
|
||||||
| `common.configmap.RESOURCE_UPLOAD_PATH` | Resource store on HDFS/S3 path, please make sure the directory exists on hdfs and have read write permissions | `/dolphinscheduler` |
|
| `common.configmap.RESOURCE_UPLOAD_PATH` | Resource store on HDFS/S3 path, please make sure the directory exists on hdfs and have read write permissions | `/dolphinscheduler` |
|
||||||
| `common.configmap.FS_DEFAULT_FS` | Resource storage file system like `file:///`, `hdfs://mycluster:8020` or `s3a://dolphinscheduler` | `file:///` |
|
| `common.configmap.FS_DEFAULT_FS` | Resource storage file system like `file:///`, `hdfs://mycluster:8020` or `s3a://dolphinscheduler` | `file:///` |
|
||||||
| `common.configmap.FS_S3A_ENDPOINT` | S3 endpoint when `common.configmap.RESOURCE_STORAGE_TYPE` is set to `S3` | `s3.xxx.amazonaws.com` |
|
| `common.configmap.FS_S3A_ENDPOINT` | S3 endpoint when `common.configmap.RESOURCE_STORAGE_TYPE` is set to `S3` | `s3.xxx.amazonaws.com` |
|
||||||
|
|
@ -575,11 +600,11 @@ common:
|
||||||
| `common.configmap.HADOOP_HOME` | Set `HADOOP_HOME` for DolphinScheduler's task environment | `/opt/soft/hadoop` |
|
| `common.configmap.HADOOP_HOME` | Set `HADOOP_HOME` for DolphinScheduler's task environment | `/opt/soft/hadoop` |
|
||||||
| `common.configmap.HADOOP_CONF_DIR` | Set `HADOOP_CONF_DIR` for DolphinScheduler's task environment | `/opt/soft/hadoop/etc/hadoop` |
|
| `common.configmap.HADOOP_CONF_DIR` | Set `HADOOP_CONF_DIR` for DolphinScheduler's task environment | `/opt/soft/hadoop/etc/hadoop` |
|
||||||
| `common.configmap.SPARK_HOME` | Set `SPARK_HOME` for DolphinScheduler's task environment | `/opt/soft/spark` |
|
| `common.configmap.SPARK_HOME` | Set `SPARK_HOME` for DolphinScheduler's task environment | `/opt/soft/spark` |
|
||||||
| `common.configmap.PYTHON_HOME` | Set `PYTHON_HOME` for DolphinScheduler's task environment | `/usr/bin/python` |
|
| `common.configmap.PYTHON_LAUNCHER` | Set `PYTHON_LAUNCHER` for DolphinScheduler's task environment | `/usr/bin/python` |
|
||||||
| `common.configmap.JAVA_HOME` | Set `JAVA_HOME` for DolphinScheduler's task environment | `/opt/java/openjdk` |
|
| `common.configmap.JAVA_HOME` | Set `JAVA_HOME` for DolphinScheduler's task environment | `/opt/java/openjdk` |
|
||||||
| `common.configmap.HIVE_HOME` | Set `HIVE_HOME` for DolphinScheduler's task environment | `/opt/soft/hive` |
|
| `common.configmap.HIVE_HOME` | Set `HIVE_HOME` for DolphinScheduler's task environment | `/opt/soft/hive` |
|
||||||
| `common.configmap.FLINK_HOME` | Set `FLINK_HOME` for DolphinScheduler's task environment | `/opt/soft/flink` |
|
| `common.configmap.FLINK_HOME` | Set `FLINK_HOME` for DolphinScheduler's task environment | `/opt/soft/flink` |
|
||||||
| `common.configmap.DATAX_HOME` | Set `DATAX_HOME` for DolphinScheduler's task environment | `/opt/soft/datax` |
|
| `common.configmap.DATAX_LAUNCHER` | Set `DATAX_LAUNCHER` for DolphinScheduler's task environment | `/opt/soft/datax` |
|
||||||
| `common.sharedStoragePersistence.enabled` | Set `common.sharedStoragePersistence.enabled` to `true` to mount a shared storage volume for Hadoop, Spark binary and etc | `false` |
|
| `common.sharedStoragePersistence.enabled` | Set `common.sharedStoragePersistence.enabled` to `true` to mount a shared storage volume for Hadoop, Spark binary and etc | `false` |
|
||||||
| `common.sharedStoragePersistence.mountPath` | The mount path for the shared storage volume | `/opt/soft` |
|
| `common.sharedStoragePersistence.mountPath` | The mount path for the shared storage volume | `/opt/soft` |
|
||||||
| `common.sharedStoragePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` |
|
| `common.sharedStoragePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` |
|
||||||
|
|
@ -590,6 +615,7 @@ common:
|
||||||
| `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` |
|
| `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` |
|
||||||
| `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `master.enabled` | Enable or disable the Master component | true |
|
||||||
| `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
| `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
||||||
| `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
| `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
||||||
| `master.annotations` | The `annotations` for master server | `{}` |
|
| `master.annotations` | The `annotations` for master server | `{}` |
|
||||||
|
|
@ -624,6 +650,7 @@ common:
|
||||||
| `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
| `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
||||||
| `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `worker.enabled` | Enable or disable the Worker component | true |
|
||||||
| `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
| `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
||||||
| `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
| `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
||||||
| `worker.annotations` | The `annotations` for worker server | `{}` |
|
| `worker.annotations` | The `annotations` for worker server | `{}` |
|
||||||
|
|
@ -658,6 +685,7 @@ common:
|
||||||
| `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
| `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
||||||
| `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `alert.enabled` | Enable or disable the Alert-Server component | true |
|
||||||
| `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
| `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
||||||
| `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
| `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
||||||
| `alert.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
| `alert.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
||||||
|
|
@ -699,6 +727,7 @@ common:
|
||||||
| `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
| `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
||||||
| `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `api.enabled` | Enable or disable the API-Server component | true |
|
||||||
| `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
| `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
||||||
| `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
| `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
||||||
| `api.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
| `api.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
||||||
|
|
|
||||||
|
|
@ -133,12 +133,12 @@ export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-lo
|
||||||
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
||||||
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
||||||
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
||||||
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
|
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
|
||||||
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
||||||
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
||||||
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
|
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
|
||||||
|
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
```
|
```
|
||||||
|
|
||||||
## Initialize the Database
|
## Initialize the Database
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ If you want to deploy DolphinScheduler in production, we recommend you follow [c
|
||||||
## Preparation
|
## Preparation
|
||||||
|
|
||||||
- JDK:download [JDK][jdk] (1.8+), install and configure environment variable `JAVA_HOME` and append `bin` dir (included in `JAVA_HOME`) to `PATH` variable. You can skip this step if it already exists in your environment.
|
- JDK:download [JDK][jdk] (1.8+), install and configure environment variable `JAVA_HOME` and append `bin` dir (included in `JAVA_HOME`) to `PATH` variable. You can skip this step if it already exists in your environment.
|
||||||
- Binary package: download the DolphinScheduler binary package at [download page](https://dolphinscheduler.apache.org/en-us/download/<version>). <!-- markdown-link-check-disable-line -->
|
- Binary package: download the DolphinScheduler binary package at [download page](https://dolphinscheduler.apache.org/en-us/download/3.2.0). <!-- markdown-link-check-disable-line -->
|
||||||
|
|
||||||
## Start DolphinScheduler Standalone Server
|
## Start DolphinScheduler Standalone Server
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ API and Worker Services share the configuration file `/opt/dolphinscheduler/conf
|
||||||
|
|
||||||
## How to support Python 3?
|
## How to support Python 3?
|
||||||
|
|
||||||
Worker service is installed with default `Python3`,you can add environment variables `PYTHON_HOME=/usr/bin/python3`
|
Worker service is installed with default `Python3`,you can add environment variables `PYTHON_LAUNCHER=/usr/bin/python3`
|
||||||
|
|
||||||
## How to support Hadoop, Spark, DataX ?
|
## How to support Hadoop, Spark, DataX ?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,6 @@ For example, you can get the master metrics by `curl http://localhost:5679/actua
|
||||||
- ds.task.dispatch.failure.count: (counter) the number of tasks failed to dispatch, retry failure included
|
- ds.task.dispatch.failure.count: (counter) the number of tasks failed to dispatch, retry failure included
|
||||||
- ds.task.dispatch.error.count: (counter) the number of task dispatch errors
|
- ds.task.dispatch.error.count: (counter) the number of task dispatch errors
|
||||||
- ds.task.execution.count.by.type: (counter) the number of task executions grouped by tag `task_type`
|
- ds.task.execution.count.by.type: (counter) the number of task executions grouped by tag `task_type`
|
||||||
- ds.task.running: (gauge) the number of running tasks
|
|
||||||
- ds.task.prepared: (gauge) the number of tasks prepared for task queue
|
- ds.task.prepared: (gauge) the number of tasks prepared for task queue
|
||||||
- ds.task.execution.count: (counter) the number of executed tasks
|
- ds.task.execution.count: (counter) the number of executed tasks
|
||||||
- ds.task.execution.duration: (histogram) duration of task executions
|
- ds.task.execution.duration: (histogram) duration of task executions
|
||||||
|
|
@ -104,6 +103,12 @@ For example, you can get the master metrics by `curl http://localhost:5679/actua
|
||||||
### Worker Server Metrics
|
### Worker Server Metrics
|
||||||
|
|
||||||
- ds.worker.overload.count: (counter) the number of times the worker overloaded
|
- ds.worker.overload.count: (counter) the number of times the worker overloaded
|
||||||
|
- ds.worker.task: (gauge) the number of tasks on the worker, including pending and running ones
|
||||||
|
- ds.worker.execute.queue.size: (gauge) the number of pending tasks on the worker
|
||||||
|
- ds.worker.active.execute.thread: (gauge) the number of running tasks on the worker
|
||||||
|
- ds.worker.memory.available: (gauge) the available physical memory of the worker (GB)
|
||||||
|
- ds.worker.cpu.usage: (gauge) the cpu usage percentage of the worker
|
||||||
|
- ds.worker.memory.usage: (gauge) the memory usage percentage of the worker
|
||||||
- ds.worker.full.submit.queue.count: (counter) the number of times the worker's submit queue being full
|
- ds.worker.full.submit.queue.count: (counter) the number of times the worker's submit queue being full
|
||||||
- ds.worker.resource.download.count: (counter) the number of downloaded resource files on workers, sliced by tag `status`
|
- ds.worker.resource.download.count: (counter) the number of downloaded resource files on workers, sliced by tag `status`
|
||||||
- ds.worker.resource.download.duration: (histogram) the time cost of resource download on workers
|
- ds.worker.resource.download.duration: (histogram) the time cost of resource download on workers
|
||||||
|
|
@ -113,7 +118,7 @@ For example, you can get the master metrics by `curl http://localhost:5679/actua
|
||||||
|
|
||||||
- ds.api.request.count: (counter) the number of requests received by the api server
|
- ds.api.request.count: (counter) the number of requests received by the api server
|
||||||
- ds.api.response.count: (counter) the number of responses received by the api server, sliced by tag `code`
|
- ds.api.response.count: (counter) the number of responses received by the api server, sliced by tag `code`
|
||||||
- ds.api.response.time: (histogram) the response time distribution of the api server
|
- ds.api.response.time: (timer) the response time distribution of the api server, sliced by tag `user_id`
|
||||||
- ds.api.resource.upload.size: (histogram) size distribution of resource files uploaded by the api server (bytes)
|
- ds.api.resource.upload.size: (histogram) size distribution of resource files uploaded by the api server (bytes)
|
||||||
- ds.api.resource.download.size: (histogram) size distribution of resource files download by the api server (bytes)
|
- ds.api.resource.download.size: (histogram) size distribution of resource files download by the api server (bytes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
| system.biz.curdate | `${system.biz.curdate}` | The schedule time of the daily scheduling instance, the format is `yyyyMMdd` |
|
| system.biz.curdate | `${system.biz.curdate}` | The schedule time of the daily scheduling instance, the format is `yyyyMMdd` |
|
||||||
| system.datetime | `${system.datetime}` | The schedule time of the daily scheduling instance, the format is `yyyyMMddHHmmss` |
|
| system.datetime | `${system.datetime}` | The schedule time of the daily scheduling instance, the format is `yyyyMMddHHmmss` |
|
||||||
| system.task.execute.path | `${system.task.execute.path}` | The absolute path of current executing task |
|
| system.task.execute.path | `${system.task.execute.path}` | The absolute path of current executing task |
|
||||||
| system.task.instance.id | `${ssystem.task.instance.id}` | The instance id of current task |
|
| system.task.instance.id | `${system.task.instance.id}` | The instance id of current task |
|
||||||
| system.task.definition.name | `${system.task.definition.name}` | The definition name of current task |
|
| system.task.definition.name | `${system.task.definition.name}` | The definition name of current task |
|
||||||
| system.task.definition.code | `${system.task.definition.code}` | The definition code of current task |
|
| system.task.definition.code | `${system.task.definition.code}` | The definition code of current task |
|
||||||
| system.workflow.instance.id | `${system.workflow.instance.id}` | The instance id of the workflow to which current task belongs |
|
| system.workflow.instance.id | `${system.workflow.instance.id}` | The instance id of the workflow to which current task belongs |
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,10 @@ DolphinScheduler allows parameter transfer between tasks. Currently, transfer di
|
||||||
* [SQL](../task/sql.md)
|
* [SQL](../task/sql.md)
|
||||||
* [Procedure](../task/stored-procedure.md)
|
* [Procedure](../task/stored-procedure.md)
|
||||||
* [Python](../task/python.md)
|
* [Python](../task/python.md)
|
||||||
|
* [SubProcess](../task/sub-process.md)
|
||||||
|
* [Kubernetes](../task/kubernetes.md)
|
||||||
|
|
||||||
When defining an upstream node, if there is a need to transmit the result of that node to a dependency related downstream node. You need to set an `OUT` direction parameter to [Custom Parameters] of the [Current Node Settings]. At present, we mainly focus on the SQL and shell nodes to pass parameters downstream.
|
When defining an upstream node, if there is a need to transmit the result of that node to a dependency related downstream node. You need to set an `OUT` direction parameter to [Custom Parameters] of the [Current Node Settings]. If it is a SubProcess node, there is no need to set a parameter in [Current Node Settings], but an `OUT` direction parameter needs to be set in the workflow definition of the subprocess.
|
||||||
|
|
||||||
The value of upstream parameter can be updated in downstream node in the same way as [setting parameter](#create-a-shell-task-and-set-parameters).
|
The value of upstream parameter can be updated in downstream node in the same way as [setting parameter](#create-a-shell-task-and-set-parameters).
|
||||||
|
|
||||||
|
|
@ -60,7 +62,7 @@ When the SHELL task is completed, we can use the output passed upstream as the q
|
||||||
|
|
||||||
Click on the Save workflow icon and set the global parameters output and value.
|
Click on the Save workflow icon and set the global parameters output and value.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
#### View results
|
#### View results
|
||||||
|
|
||||||
|
|
@ -88,4 +90,40 @@ Use `print('${setValue(key=%s)}' % value)`, DolphinScheduler will capture the `$
|
||||||
|
|
||||||
For example
|
For example
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
#### Pass parameter from SubProcess task to downstream
|
||||||
|
|
||||||
|
In the workflow definition of the subprocess, define `OUT` direction parameters as output parameters, and these parameters can be passed to the downstream tasks of the subprocess node.
|
||||||
|
|
||||||
|
Create an A task in the workflow definition of the subprocess, add var1 and var2 parameters to the custom parameters, and write the following script:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Save the subprocess_example1 workflow and set the global parameters var1.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Create a sub_process task in a new workflow, and use the subprocess_example1 workflow as the sub-node.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Create a shell task as a downstream task of the sub_process task, and write the following script:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Save the workflow and run it. The result of the downstream task is as follows:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Although the two parameters var1 and var2 are output in the A task, only the `OUT` parameter var1 is defined in the workflow definition, and the downstream task successfully outputs var1. It proves that the var1 parameter is passed in the workflow with reference to the expected value.
|
||||||
|
|
||||||
|
#### Pass parameter from Kubernetes task to downstream
|
||||||
|
|
||||||
|
Different programming languages may use different logging frameworks in Kubernetes tasks. To be compatible with these frameworks, DolphinScheduler provides a universal logging data format `${(key=value)dsVal}`. Users can output log data in the format `${(key=value)dsVal}` in the terminal logs of their applications, where `key` is the corresponding parameter prop and `value` is the value of that parameter. DolphinScheduler will capture the `${(key=value)dsVal}` in the output logs to capture the parameters and pass them downstream.
|
||||||
|
|
||||||
|
For example
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Another special consideration, not always can DolphinScheduler collect pod logs, if the user redirects the log output stream, DolphinScheduler can not collect logs for use and can not use the output parameter, either.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
Global parameters are parameters that are valid for all task nodes of the entire workflow. It can be configured on the workflow definition page.
|
Global parameters can be configured on the workflow definition page.
|
||||||
|
|
||||||
|
The `IN` direction parameter is valid for all task nodes of the entire workflow.
|
||||||
|
|
||||||
|
The `OUT` direction parameter is the output parameter of the workflow and passed to the downstream task of the corresponding SubProcess task in the parent workflow.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
DolphinScheduler has three parameter types:
|
DolphinScheduler has three parameter types:
|
||||||
|
|
||||||
|
* [Project-level Parameter](project-parameter.md): parameters defined at the project management page.
|
||||||
* [Global Parameter](global.md): parameters defined at the workflow define page.
|
* [Global Parameter](global.md): parameters defined at the workflow define page.
|
||||||
* [Startup Parameter](startup-parameter.md): parameters defined at the workflow launch page.
|
* [Startup Parameter](startup-parameter.md): parameters defined at the workflow launch page.
|
||||||
* [Parameter Context](context.md): parameters passed by upstream task nodes.
|
* [Parameter Context](context.md): parameters passed by upstream task nodes.
|
||||||
|
|
@ -9,7 +10,7 @@ DolphinScheduler has three parameter types:
|
||||||
|
|
||||||
The user can define part of the parameters when creating workflow definitions.
|
The user can define part of the parameters when creating workflow definitions.
|
||||||
|
|
||||||
As there are multiple sources of the parameter value, it will raise parameter priority issues when the parameter name is the same. The priority of DolphinScheduler parameters from high to low is: `Startup Parameter > Local Parameter > Parameter Context > Global Parameter`.
|
As there are multiple sources of the parameter value, it will raise parameter priority issues when the parameter name is the same. The priority of DolphinScheduler parameters from high to low is: `Startup Parameter > Local Parameter > Parameter Context > Global Parameter > Project-level Parameter`.
|
||||||
|
|
||||||
In the case of upstream tasks can pass parameters to the downstream, there may be multiple tasks upstream that pass the same parameter name:
|
In the case of upstream tasks can pass parameters to the downstream, there may be multiple tasks upstream that pass the same parameter name:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Project-level Parameter
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
Project-level parameters are valid for all task nodes under the entire project.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Define project-level parameters
|
||||||
|
|
||||||
|
On the project page, click Project Parameters and Create Parameters, and fill in the parameter name and parameter value. As shown below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Use project-level parameters
|
||||||
|
|
||||||
|
Take the shell task as an example, enter `echo ${param}` in the script content, where `param` is the project-level parameter created in the previous step.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Run the shell task. On the task instance page, you can view the task log to verify whether the parameters are valid.
|
||||||
|
|
||||||
|

|
||||||
|
|
@ -24,7 +24,7 @@ Click "View Log", a log window pops up, as shown in the figure below, you can al
|
||||||
|
|
||||||
Click `Project Management -> Workflow -> Workflow Instance` to enter the workflow instance page, click the workflow name to enter the workflow DAG page;
|
Click `Project Management -> Workflow -> Workflow Instance` to enter the workflow instance page, click the workflow name to enter the workflow DAG page;
|
||||||
|
|
||||||
Double-click the task node, click `View History` to jump to the task instance page, and display the list of task instances run by the workflow instance.
|
Double-click the task node, click `View History` to jump to the task instance page, and display the list of task instances run by the task definition.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,3 +61,19 @@ remote.logging.google.cloud.storage.credential=/path/to/credential
|
||||||
remote.logging.google.cloud.storage.bucket.name=<your-bucket>
|
remote.logging.google.cloud.storage.bucket.name=<your-bucket>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Writing task logs to [Azure Blob Storage (ABS)](https://azure.microsoft.com/en-us/products/storage/blobs)
|
||||||
|
|
||||||
|
Configure `common.properties` as follows:
|
||||||
|
|
||||||
|
```properties
|
||||||
|
# abs container name, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.blob.storage.container.name=<your-container>
|
||||||
|
# abs account name, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.blob.storage.account.name=<your-account-name>
|
||||||
|
# abs connection string, required if you set resource.storage.type=ABS
|
||||||
|
resource.azure.blob.storage.connection.string=<your-connection-string>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notice
|
||||||
|
|
||||||
|
Since Azure Blob Storage does not support the existence of empty directories, there will be empty files `<no name>` under the resource directory. But it does not affect the file display on the Dolphinscheduler resource center.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Resource Center Configuration
|
# Resource Center Configuration
|
||||||
|
|
||||||
- You could use `Resource Center` to upload text files, UDFs and other task-related files.
|
- You could use `Resource Center` to upload text files, UDFs and other task-related files.
|
||||||
- You could configure `Resource Center` to use distributed file system like [Hadoop](https://hadoop.apache.org/docs/r2.7.0/) (2.6+), [MinIO](https://github.com/minio/minio) cluster or remote storage products like [AWS S3](https://aws.amazon.com/s3/), [Alibaba Cloud OSS](https://www.aliyun.com/product/oss), etc.
|
- You could configure `Resource Center` to use distributed file system like [Hadoop](https://hadoop.apache.org/docs/r2.7.0/) (2.6+), [MinIO](https://github.com/minio/minio) cluster or remote storage products like [AWS S3](https://aws.amazon.com/s3/), [Alibaba Cloud OSS](https://www.aliyun.com/product/oss), [Huawei Cloud OBS](https://support.huaweicloud.com/obs/index.html) etc.
|
||||||
- You could configure `Resource Center` to use local file system. If you deploy `DolphinScheduler` in `Standalone` mode, you could configure it to use local file system for `Resouce Center` without the need of an external `HDFS` system or `S3`.
|
- You could configure `Resource Center` to use local file system. If you deploy `DolphinScheduler` in `Standalone` mode, you could configure it to use local file system for `Resouce Center` without the need of an external `HDFS` system or `S3`.
|
||||||
- Furthermore, if you deploy `DolphinScheduler` in `Cluster` mode, you could use [S3FS-FUSE](https://github.com/s3fs-fuse/s3fs-fuse) to mount `S3` or [JINDO-FUSE](https://help.aliyun.com/document_detail/187410.html) to mount `OSS` to your machines and use the local file system for `Resouce Center`. In this way, you could operate remote files as if on your local machines.
|
- Furthermore, if you deploy `DolphinScheduler` in `Cluster` mode, you could use [S3FS-FUSE](https://github.com/s3fs-fuse/s3fs-fuse) to mount `S3` or [JINDO-FUSE](https://help.aliyun.com/document_detail/187410.html) to mount `OSS` to your machines and use the local file system for `Resouce Center`. In this way, you could operate remote files as if on your local machines.
|
||||||
|
|
||||||
|
|
@ -80,8 +80,8 @@ data.basedir.path=/tmp/dolphinscheduler
|
||||||
# resource view suffixs
|
# resource view suffixs
|
||||||
#resource.view.suffixs=txt,log,sh,bat,conf,cfg,py,java,sql,xml,hql,properties,json,yml,yaml,ini,js
|
#resource.view.suffixs=txt,log,sh,bat,conf,cfg,py,java,sql,xml,hql,properties,json,yml,yaml,ini,js
|
||||||
|
|
||||||
# resource storage type: HDFS, S3, OSS, GCS, NONE
|
# resource storage type: LOCAL, HDFS, S3, OSS, GCS, ABS, OBS
|
||||||
resource.storage.type=NONE
|
resource.storage.type=LOCAL
|
||||||
# resource store on HDFS/S3/OSS path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
|
# resource store on HDFS/S3/OSS path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
|
||||||
resource.storage.upload.base.path=/tmp/dolphinscheduler
|
resource.storage.upload.base.path=/tmp/dolphinscheduler
|
||||||
|
|
||||||
|
|
@ -107,6 +107,15 @@ resource.alibaba.cloud.oss.bucket.name=dolphinscheduler
|
||||||
# oss bucket endpoint, required if you set resource.storage.type=OSS
|
# oss bucket endpoint, required if you set resource.storage.type=OSS
|
||||||
resource.alibaba.cloud.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
|
resource.alibaba.cloud.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
|
||||||
|
|
||||||
|
# alibaba cloud access key id, required if you set resource.storage.type=OBS
|
||||||
|
resource.huawei.cloud.access.key.id=<your-access-key-id>
|
||||||
|
# alibaba cloud access key secret, required if you set resource.storage.type=OBS
|
||||||
|
resource.huawei.cloud.access.key.secret=<your-access-key-secret>
|
||||||
|
# oss bucket name, required if you set resource.storage.type=OBS
|
||||||
|
resource.huawei.cloud.obs.bucket.name=dolphinscheduler
|
||||||
|
# oss bucket endpoint, required if you set resource.storage.type=OBS
|
||||||
|
resource.huawei.cloud.obs.endpoint=obs.cn-southwest-2.huaweicloud.com
|
||||||
|
|
||||||
# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
|
# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
|
||||||
resource.hdfs.root.user=hdfs
|
resource.hdfs.root.user=hdfs
|
||||||
# if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir
|
# if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
The Resource Center is typically used for uploading files, UDF functions, and task group management. For a stand-alone
|
The Resource Center is typically used for uploading files, UDF functions, and task group management. For a stand-alone
|
||||||
environment, you can select the local file directory as the upload folder (**this operation does not require Hadoop or HDFS deployment**).
|
environment, you can select the local file directory as the upload folder (**this operation does not require Hadoop or HDFS deployment**).
|
||||||
Of course, you can also choose to upload to Hadoop or MinIO cluster. In this case, you need to have Hadoop (2.6+) or MinIOn and other related environments.
|
Of course, you can also choose to upload to Hadoop or MinIO cluster. In this case, you need to have Hadoop (2.6+) or MinIO and other related environments.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Task Group Settings
|
# Task Group Settings
|
||||||
|
|
||||||
The task group is mainly used to control the concurrency of task instances, and is designed to control the pressure of other resources (it can also control the pressure of the Hadoop cluster, the cluster will have queue control it). When creating a new task definition, you can configure the corresponding task group and configure the priority of the task running in the task group.
|
The task group is mainly used to control the concurrency of task instances, and is designed to control the pressure of other resources (it can also control the pressure of the Hadoop cluster, the cluster will have queue control it). When creating a new task definition, you can configure the corresponding task group and configure the priority of the task running in the task group. The user can only view the task groups belongs to authorized projects, and can create or update task groups belongs to one project only if they have write permission.
|
||||||
|
|
||||||
## Task Group Configuration
|
## Task Group Configuration
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Authentication Type
|
# Authentication Type
|
||||||
|
|
||||||
* So far we support three authentication types, Apache DolphinScheduler password, LDAP and Casdoor SSO.
|
* So far we support four authentication types, Apache DolphinScheduler password, LDAP, Casdoor SSO and OAuth2,the OAuth2 authorization login mode can be used with other authentication modes.
|
||||||
|
|
||||||
## Change Authentication Type
|
## Change Authentication Type
|
||||||
|
|
||||||
|
|
@ -25,6 +25,50 @@ security:
|
||||||
email-attribute: mail
|
email-attribute: mail
|
||||||
# action when ldap user is not exist (supported types: CREATE,DENY)
|
# action when ldap user is not exist (supported types: CREATE,DENY)
|
||||||
not-exist-action: CREATE
|
not-exist-action: CREATE
|
||||||
|
ssl:
|
||||||
|
enable: false
|
||||||
|
# jks file absolute path && password
|
||||||
|
trust-store: "/ldapkeystore.jks"
|
||||||
|
trust-store-password: "password"
|
||||||
|
casdoor:
|
||||||
|
user:
|
||||||
|
admin: ""
|
||||||
|
oauth2:
|
||||||
|
enable: false
|
||||||
|
provider:
|
||||||
|
github:
|
||||||
|
authorizationUri: ""
|
||||||
|
redirectUri: ""
|
||||||
|
clientId: ""
|
||||||
|
clientSecret: ""
|
||||||
|
tokenUri: ""
|
||||||
|
userInfoUri: ""
|
||||||
|
callbackUrl: ""
|
||||||
|
iconUri: ""
|
||||||
|
provider: github
|
||||||
|
google:
|
||||||
|
authorizationUri: ""
|
||||||
|
redirectUri: ""
|
||||||
|
clientId: ""
|
||||||
|
clientSecret: ""
|
||||||
|
tokenUri: ""
|
||||||
|
userInfoUri: ""
|
||||||
|
callbackUrl: ""
|
||||||
|
iconUri: ""
|
||||||
|
provider: google
|
||||||
|
casdoor:
|
||||||
|
# Your Casdoor server url
|
||||||
|
endpoint: ""
|
||||||
|
client-id: ""
|
||||||
|
client-secret: ""
|
||||||
|
# The certificate may be multi-line, you can use `|-` for ease
|
||||||
|
certificate: ""
|
||||||
|
# Your organization name added in Casdoor
|
||||||
|
organization-name: ""
|
||||||
|
# Your application name added in Casdoor
|
||||||
|
application-name: ""
|
||||||
|
# Doplhinscheduler login url
|
||||||
|
redirect-url: ""
|
||||||
```
|
```
|
||||||
|
|
||||||
For detailed explanation of specific fields, please see: [Api-server related configuration](../../architecture/configuration.md)
|
For detailed explanation of specific fields, please see: [Api-server related configuration](../../architecture/configuration.md)
|
||||||
|
|
@ -41,6 +85,17 @@ You can follow guide below:
|
||||||
- Change the expected email to the return value you expect in the `ldapLogin` method.
|
- Change the expected email to the return value you expect in the `ldapLogin` method.
|
||||||
- Run`ldapLogin`method and determine whether the LDAP login result is expected.
|
- Run`ldapLogin`method and determine whether the LDAP login result is expected.
|
||||||
|
|
||||||
|
If you want to enable ssl, please change configuration in `TestPropertySource` like below:
|
||||||
|
|
||||||
|
```
|
||||||
|
security.authentication.ldap.ssl.enable=false
|
||||||
|
// absolute path
|
||||||
|
security.authentication.ldap.ssl.trust-store=/ldapkeystore.jks
|
||||||
|
security.authentication.ldap.ssl.trust-store-password=yourpassword
|
||||||
|
```
|
||||||
|
|
||||||
|
Then run`ldapLoginSSL`method and determine whether the LDAP login result is expected.
|
||||||
|
|
||||||
## Casdoor SSO
|
## Casdoor SSO
|
||||||
|
|
||||||
[Casdoor](https://casdoor.org/) is a UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform based on OAuth 2.0, OIDC, SAML and CAS. You can add SSO capability to Dolphinscheduler through Casdoor by following these steps:
|
[Casdoor](https://casdoor.org/) is a UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform based on OAuth 2.0, OIDC, SAML and CAS. You can add SSO capability to Dolphinscheduler through Casdoor by following these steps:
|
||||||
|
|
@ -94,3 +149,66 @@ casdoor:
|
||||||
redirect-url: http://localhost:5173/login
|
redirect-url: http://localhost:5173/login
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## OAuth2
|
||||||
|
|
||||||
|
Dolphinscheduler can support multiple OAuth2 providers.
|
||||||
|
|
||||||
|
### Step1. Create Client Credentials
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Step2.Enable OAuth2 Login In The Api's Configuration File
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
security:
|
||||||
|
authentication:
|
||||||
|
…… # omit
|
||||||
|
oauth2:
|
||||||
|
# Set enable to true to enable oauth2 login mode
|
||||||
|
enable: true
|
||||||
|
provider:
|
||||||
|
github:
|
||||||
|
# Set the provider authorization address, for example:https://github.com/login/oauth/authorize
|
||||||
|
authorizationUri: ""
|
||||||
|
# dolphinscheduler backend redirection interface address, for example :http://127.0.0.1:12345/dolphinscheduler/redirect/login/oauth2
|
||||||
|
redirectUri: ""
|
||||||
|
# clientId
|
||||||
|
clientId: ""
|
||||||
|
# client secret
|
||||||
|
clientSecret: ""
|
||||||
|
# Set the provider's request token address
|
||||||
|
tokenUri: ""
|
||||||
|
# Set the provider address for requesting user information
|
||||||
|
userInfoUri: ""
|
||||||
|
# Redirect address after successful login, http://{ip}:{port}/login
|
||||||
|
callbackUrl: ""
|
||||||
|
# The image url of the login page jump button, if not filled, a text button will be displayed
|
||||||
|
iconUri: ""
|
||||||
|
provider: github
|
||||||
|
google:
|
||||||
|
authorizationUri: ""
|
||||||
|
redirectUri: ""
|
||||||
|
clientId: ""
|
||||||
|
clientSecret: ""
|
||||||
|
tokenUri: ""
|
||||||
|
userInfoUri: ""
|
||||||
|
callbackUrl: ""
|
||||||
|
iconUri: ""
|
||||||
|
provider: google
|
||||||
|
gitee:
|
||||||
|
authorizationUri: "https://gitee.com/oauth/authorize"
|
||||||
|
redirectUri: "http://127.0.0.1:12345/dolphinscheduler/redirect/login/oauth2"
|
||||||
|
clientId: ""
|
||||||
|
clientSecret: ""
|
||||||
|
tokenUri: "https://gitee.com/oauth/token?grant_type=authorization_code"
|
||||||
|
userInfoUri: "https://gitee.com/api/v5/user"
|
||||||
|
callbackUrl: "http://127.0.0.1:5173/login"
|
||||||
|
iconUri: ""
|
||||||
|
provider: gitee
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step.3 Login With OAuth2
|
||||||
|
|
||||||
|

|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ Start DolphinScheduler with standalone-server Docker images is the easiest way t
|
||||||
you can learn DolphinScheduler's concepts and usage, with minimal cost.
|
you can learn DolphinScheduler's concepts and usage, with minimal cost.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ DOLPHINSCHEDULER_VERSION=<version>
|
$ DOLPHINSCHEDULER_VERSION=3.2.0
|
||||||
$ docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
|
$ docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -37,11 +37,11 @@ be stored on disks after you change docker-compose configuration, and it is robu
|
||||||
DolphinScheduler in a long term. You have to install [docker-compose](https://docs.docker.com/compose/install/) before you
|
DolphinScheduler in a long term. You have to install [docker-compose](https://docs.docker.com/compose/install/) before you
|
||||||
start servers.
|
start servers.
|
||||||
|
|
||||||
After complete the installation, get the `docker-compose.yaml` file from [download page](https://dolphinscheduler.apache.org/en-us/download/<version>)
|
After complete the installation, get the `docker-compose.yaml` file from [download page](https://dolphinscheduler.apache.org/en-us/download/3.2.0)
|
||||||
form its source package, and make sure you get the right version. After download the package, you can run the commands as below.
|
form its source package, and make sure you get the right version. After download the package, you can run the commands as below.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ DOLPHINSCHEDULER_VERSION=<version>
|
$ DOLPHINSCHEDULER_VERSION=3.2.0
|
||||||
$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
|
$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
|
||||||
# Going to docker-compose's location
|
# Going to docker-compose's location
|
||||||
# For Mac or Linux users
|
# For Mac or Linux users
|
||||||
|
|
@ -68,7 +68,7 @@ $ docker-compose --profile all up -d
|
||||||
container when it up. You could start DolphinScheduler server separately if you want to reuse your exists services.
|
container when it up. You could start DolphinScheduler server separately if you want to reuse your exists services.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ DOLPHINSCHEDULER_VERSION=<version>
|
$ DOLPHINSCHEDULER_VERSION=3.2.0
|
||||||
# Initialize the database, make sure database <DATABASE> already exists
|
# Initialize the database, make sure database <DATABASE> already exists
|
||||||
$ docker run -d --name dolphinscheduler-tools \
|
$ docker run -d --name dolphinscheduler-tools \
|
||||||
-e DATABASE="postgresql" \
|
-e DATABASE="postgresql" \
|
||||||
|
|
@ -134,5 +134,5 @@ and use `admin` and `dolphinscheduler123` as default username and password in th
|
||||||
|
|
||||||
You can modify some environment variables to change configurations when you are starting servers through Docker. We have
|
You can modify some environment variables to change configurations when you are starting servers through Docker. We have
|
||||||
an example in [using exists PostgreSQL ZooKeeper](#using-exists-postgresql-zookeeper) to change database and ZooKeeper configurations,
|
an example in [using exists PostgreSQL ZooKeeper](#using-exists-postgresql-zookeeper) to change database and ZooKeeper configurations,
|
||||||
and you could find all environment variables in [all environment variables](https://github.com/apache/dolphinscheduler/blob/<version>/script/env/dolphinscheduler_env.sh) <!-- markdown-link-check-disable-line -->
|
and you could find all environment variables in [all environment variables](https://github.com/apache/dolphinscheduler/blob/3.2.0/script/env/dolphinscheduler_env.sh) <!-- markdown-link-check-disable-line -->
|
||||||
and change them if you want.
|
and change them if you want.
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
DataX task type for executing DataX programs. For DataX nodes, the worker will execute `${DATAX_HOME}/bin/datax.py` to analyze the input json file.
|
DataX task type for executing DataX programs. For DataX nodes, the worker will execute `${DATAX_LAUNCHER}` to analyze the input json file.
|
||||||
|
|
||||||
By default, the datax.py will be executed by python2.7, if you want to use other python version, you can set the `DATAX_PYTHON` environment variable to specify a version.
|
Please set environment name `PYTHON_LAUNCHER` before you run datax task, some of datax release version only support `python2.7`
|
||||||
|
|
||||||
## Create Task
|
## Create Task
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
# Dynamic Task
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Dynamic task can input multiple parameter lists, calculate all parameter combinations through Cartesian product, and then execute each parameter combination as a sub-workflow node.
|
||||||
|
|
||||||
|
For example, we have a workflow with two input parameters, a, b.
|
||||||
|
|
||||||
|
We can use the dynamic node to define this workflow definition as a node, and then enter the parameter list
|
||||||
|
|
||||||
|
- Parameter a: a1, a2
|
||||||
|
- Parameter b: b1, b2
|
||||||
|
|
||||||
|
Then the dynamic node will calculate four parameter combinations, which are
|
||||||
|
- a1, b1
|
||||||
|
- a1, b2
|
||||||
|
- a2, b1
|
||||||
|
- a2, b2
|
||||||
|
|
||||||
|
Then execute these four parameter combinations as the startup parameters of the sub-workflow node, and a total of four sub-workflow nodes are generated.
|
||||||
|
|
||||||
|
## Create Task
|
||||||
|
|
||||||
|
- Click `Project -> Management-Project -> Name-Workflow Definition`, and click the "Create Workflow" button to enter the
|
||||||
|
DAG editing page.
|
||||||
|
- Drag from the toolbar <img src="../../../../img/tasks/icons/dynamic.png" width="15"/> task node to canvas.
|
||||||
|
|
||||||
|
The task definition is shown in the following figure:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Task Parameters
|
||||||
|
|
||||||
|
[//]: # (TODO: use the commented anchor below once our website template supports this syntax)
|
||||||
|
[//]: # (- Please refer to [DolphinScheduler Task Parameters Appendix](appendix.md#default-task-parameters) `Default Task Parameters` section for default parameters.)
|
||||||
|
|
||||||
|
- Please refer to [DolphinScheduler Task Parameters Appendix](appendix.md) `Default Task Parameters` section for default parameters.
|
||||||
|
|
||||||
|
| **Task Parameters** | **Description** |
|
||||||
|
|-----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| Child Node | Select the workflow definition of the sub-workflow. You can jump to the workflow definition of the selected sub-workflow by entering the sub-node in the upper right corner. |
|
||||||
|
| max num of sub workflow instances | The maximum number of sub-workflow instances dynamically generated. After exceeding this upper limit, the dynamically generated sub-workflow instances will no longer be executed. |
|
||||||
|
| Parallelism | The parallelism of the sub-workflow instances dynamically generated, that is, the number of sub-workflow instances executed at the same time. |
|
||||||
|
| Param Value | The parameter of the sub-workflow instance dynamically generated, supports multiple parameters, and the parameters are separated by delimiters. |
|
||||||
|
| Filter Condition | The filter condition of the sub-workflow instance dynamically generated, supports multiple filter values, and the filter conditions are separated by commas, such as `2022,2023`, which will filter the parameter groups containing the values of 2022 and 2023. |
|
||||||
|
|
||||||
|
## Task Parameters Output
|
||||||
|
|
||||||
|
The output parameters of the dynamic node refer to the output parameters of the sub-workflow. The output parameters of all sub-workflows will be collected into a list as the output parameters of the dynamic node.
|
||||||
|
|
||||||
|
When the downstream task is referenced, it can be referenced by `${dynamic.out(TaskName)}`.
|
||||||
|
|
||||||
|
The value is a json, as shown below
|
||||||
|
|
||||||
|
```Json
|
||||||
|
[
|
||||||
|
{ "dynParams":{ "a":"a1", "b":"b1" }, "outputValue":{ "p":"a1-b1" }, "mappedTimes":1 },
|
||||||
|
{ "dynParams":{ "a":"a2", "b":"b1" }, "outputValue":{ "p":"a2-b1" }, "mappedTimes":2 },
|
||||||
|
{ "dynParams":{ "a":"a3", "b":"b1" }, "outputValue":{ "p":"a3-b1" }, "mappedTimes":3 }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `dynParams` the input parameters of the sub-workflow
|
||||||
|
- `outputValue` is the output parameter of the sub-workflow. For example, the `p` here is a string that splices the output parameters `a` and `b` of the sub-workflow and outputs them in the form of variables `p`
|
||||||
|
- `mappedTimes` is the index of the execution of the sub-workflow, starting from 1
|
||||||
|
|
||||||
|
## Running Status
|
||||||
|
|
||||||
|
After the dynamic task is started, all parameter combinations will be calculated according to the input parameter list, and then a sub-workflow instance will be created for each parameter combination.
|
||||||
|
|
||||||
|
When the dynamic task is running, it will periodically check the statistical information of all current sub-workflow instances. If the parallelism is greater than the number of sub-workflow instances running, it will trigger the start of the appropriate number of sub-workflow instances (the sub-workflow instances are created first, and then the start is triggered later).
|
||||||
|
|
||||||
|
As shown below.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The dynamic task will run successfully only when all sub-workflow instances are running successfully.
|
||||||
|
|
@ -35,6 +35,7 @@ Flink task type, used to execute Flink programs. For Flink nodes:
|
||||||
| TaskManager memory size | Used to set the size of taskManager memories, which can be set according to the actual production environment. |
|
| TaskManager memory size | Used to set the size of taskManager memories, which can be set according to the actual production environment. |
|
||||||
| Number of TaskManager | Used to set the number of taskManagers, which can be set according to the actual production environment. |
|
| Number of TaskManager | Used to set the number of taskManagers, which can be set according to the actual production environment. |
|
||||||
| Parallelism | Used to set the degree of parallelism for executing Flink tasks. |
|
| Parallelism | Used to set the degree of parallelism for executing Flink tasks. |
|
||||||
|
| Yarn queue | Used to set the yarn queue, use `default` queue by default. |
|
||||||
| Main program parameters | Set the input parameters for the Flink program and support the substitution of custom parameter variables. |
|
| Main program parameters | Set the input parameters for the Flink program and support the substitution of custom parameter variables. |
|
||||||
| Optional parameters | Support `--jar`, `--files`,` --archives`, `--conf` format. |
|
| Optional parameters | Support `--jar`, `--files`,` --archives`, `--conf` format. |
|
||||||
| Custom parameter | It is a local user-defined parameter for Flink, and will replace the content with `${variable}` in the script. |
|
| Custom parameter | It is a local user-defined parameter for Flink, and will replace the content with `${variable}` in the script. |
|
||||||
|
|
|
||||||
|
|
@ -16,17 +16,18 @@ K8S task type used to execute a batch task. In this task, the worker submits the
|
||||||
|
|
||||||
- Please refer to [DolphinScheduler Task Parameters Appendix](appendix.md) `Default Task Parameters` section for default parameters.
|
- Please refer to [DolphinScheduler Task Parameters Appendix](appendix.md) `Default Task Parameters` section for default parameters.
|
||||||
|
|
||||||
| **Parameter** | **Description** |
|
| **Parameter** | **Description** |
|
||||||
|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Namespace | The namespace for running k8s task. |
|
| Namespace | The namespace for running k8s task. |
|
||||||
| Min CPU | Minimum CPU requirement for running k8s task. |
|
| Min CPU | Minimum CPU requirement for running k8s task. |
|
||||||
| Min Memory | Minimum memory requirement for running k8s task. |
|
| Min Memory | Minimum memory requirement for running k8s task. |
|
||||||
| Image | The registry url for image. |
|
| Image | The registry url for image. |
|
||||||
| Command | The container execution command (yaml-style array), for example: ["printenv"] |
|
| Image Pull Policy | The image pull policy for image. |
|
||||||
| Args | The args of execution command (yaml-style array), for example: ["HOSTNAME", "KUBERNETES_PORT"] |
|
| Command | The container execution command (yaml-style array), for example: ["printenv"] |
|
||||||
| Custom label | The customized labels for k8s Job. |
|
| Args | The args of execution command (yaml-style array), for example: ["HOSTNAME", "KUBERNETES_PORT"] |
|
||||||
| Node selector | The label selectors for running k8s pod. Different value in value set should be seperated by command, for example: `value1,value2`. You can refer to https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/node-selector-requirement/ for configuration of different operators. |
|
| Custom label | The customized labels for k8s Job. |
|
||||||
| Custom parameter | It is a local user-defined parameter for K8S task, these params will pass to container as environment variables. |
|
| Node selector | The label selectors for running k8s pod. Different value in value set should be seperated by comma, for example: `value1,value2`. You can refer to https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/node-selector-requirement/ for configuration of different operators. |
|
||||||
|
| Custom parameter | It is a local user-defined parameter for K8S task, these params will pass to container as environment variables. |
|
||||||
|
|
||||||
## Task Example
|
## Task Example
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ MapReduce(MR) task type used for executing MapReduce programs. For MapReduce nod
|
||||||
| The class of the main function | The **full path** of Main Class, the entry point of the MapReduce program. |
|
| The class of the main function | The **full path** of Main Class, the entry point of the MapReduce program. |
|
||||||
| Main jar package | The jar package of the MapReduce program. |
|
| Main jar package | The jar package of the MapReduce program. |
|
||||||
| Task name | MapReduce task name. |
|
| Task name | MapReduce task name. |
|
||||||
|
| Yarn queue | Used to set the yarn queue, use `default` queue by default. |
|
||||||
| Command line parameters | Set the input parameters of the MapReduce program and support the substitution of custom parameter variables. |
|
| Command line parameters | Set the input parameters of the MapReduce program and support the substitution of custom parameter variables. |
|
||||||
| Other parameters | Support `-D`, `-files`, `-libjars`, `-archives` format. |
|
| Other parameters | Support `-D`, `-files`, `-libjars`, `-archives` format. |
|
||||||
| User-defined parameter | It is a local user-defined parameter for MapReduce, and will replace the content with `${variable}` in the script. |
|
| User-defined parameter | It is a local user-defined parameter for MapReduce, and will replace the content with `${variable}` in the script. |
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,6 @@ to a quick start.
|
||||||
|
|
||||||
The OpenMLDB task will use OpenMLDB Python SDK to connect OpenMLDB cluster. So you should have the Python env.
|
The OpenMLDB task will use OpenMLDB Python SDK to connect OpenMLDB cluster. So you should have the Python env.
|
||||||
|
|
||||||
We will use `python3` by default. You can set `PYTHON_HOME` to use your custom python env.
|
We will use `python3` by default. You can set `PYTHON_LAUNCHER` to use your custom python env.
|
||||||
|
|
||||||
Make sure you have installed OpenMLDB Python SDK in the host where the worker server running, using `pip install openmldb`.
|
Make sure you have installed OpenMLDB Python SDK in the host where the worker server running, using `pip install openmldb`.
|
||||||
|
|
|
||||||
|
|
@ -41,12 +41,12 @@ The preceding two parameters are used to minimize the running of the configurati
|
||||||
|
|
||||||
*no*
|
*no*
|
||||||
|
|
||||||
- **Python Command Path** :Such as `/usr/bin/python`,The default value is ${PYTHON_HOME} in environment.
|
- **Python Command Path** :Such as `/usr/bin/python`,The default value is ${PYTHON_LAUNCHER} in environment.
|
||||||
|
|
||||||
*yes*
|
*yes*
|
||||||
|
|
||||||
- **Python Environment Manager Tool** :You can choose `virtualenv` or `conda`.
|
- **Python Environment Manager Tool** :You can choose `virtualenv` or `conda`.
|
||||||
- if choose `virtualenv`,that may use `virtualenv` to create a new environment. Use command `virtualenv -p ${PYTHON_HOME} venv`.
|
- if choose `virtualenv`,that may use `virtualenv` to create a new environment. Use command `virtualenv -p ${PYTHON_LAUNCHER} venv`.
|
||||||
- if choose `conda`, ,that may use `conda` to create a new environment,And you need to specify the Python version.
|
- if choose `conda`, ,that may use `conda` to create a new environment,And you need to specify the Python version.
|
||||||
- **Requirement File** :The default is requirements.txt。
|
- **Requirement File** :The default is requirements.txt。
|
||||||
|
|
||||||
|
|
@ -86,7 +86,7 @@ It applies to a new environment to run the project. You need to create an enviro
|
||||||
```shell
|
```shell
|
||||||
# Add the directory for the virtualenv command
|
# Add the directory for the virtualenv command
|
||||||
export PATH=/home/xxx/anaconda3/bin:$PATH
|
export PATH=/home/xxx/anaconda3/bin:$PATH
|
||||||
export PYTHON_HOME=/usr/local/bin/python3.7
|
export PYTHON_LAUNCHER=/usr/local/bin/python3.7
|
||||||
```
|
```
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ Spark task type for executing Spark application. When executing the Spark task,
|
||||||
| Driver memory size | Set the size of Driver memories, which can be set according to the actual production environment. |
|
| Driver memory size | Set the size of Driver memories, which can be set according to the actual production environment. |
|
||||||
| Number of Executor | Set the number of Executor, which can be set according to the actual production environment. |
|
| Number of Executor | Set the number of Executor, which can be set according to the actual production environment. |
|
||||||
| Executor memory size | Set the size of Executor memories, which can be set according to the actual production environment. |
|
| Executor memory size | Set the size of Executor memories, which can be set according to the actual production environment. |
|
||||||
|
| Yarn queue | Set the yarn queue, use `default` queue by default. |
|
||||||
| Main program parameters | Set the input parameters of the Spark program and support the substitution of custom parameter variables. |
|
| Main program parameters | Set the input parameters of the Spark program and support the substitution of custom parameter variables. |
|
||||||
| Optional parameters | Support `--jars`, `--files`,` --archives`, `--conf` format. |
|
| Optional parameters | Support `--jars`, `--files`,` --archives`, `--conf` format. |
|
||||||
| Resource | Appoint resource files in the `Resource` if parameters refer to them. |
|
| Resource | Appoint resource files in the `Resource` if parameters refer to them. |
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,23 @@ This document records the incompatible updates between each version. You need to
|
||||||
|
|
||||||
## dev
|
## dev
|
||||||
|
|
||||||
|
* Upgrade mysql driver version from 8.0.16 to 8.0.33 ([#14684](https://github.com/apache/dolphinscheduler/pull/14684))
|
||||||
|
* Change env `PYTHON_HOME` to `PYTHON_LAUNCHER` and `DATAX_HOME` to `DATAX_LAUNCHER` ([#14523](https://github.com/apache/dolphinscheduler/pull/14523))
|
||||||
* Change regex matching sql params in SQL task plugin ([#13378](https://github.com/apache/dolphinscheduler/pull/13378))
|
* Change regex matching sql params in SQL task plugin ([#13378](https://github.com/apache/dolphinscheduler/pull/13378))
|
||||||
* Remove the spark version of spark task ([#11860](https://github.com/apache/dolphinscheduler/pull/11860)).
|
* Remove the spark version of spark task ([#11860](https://github.com/apache/dolphinscheduler/pull/11860)).
|
||||||
* Change the default unix shell executor from sh to bash ([#12180](https://github.com/apache/dolphinscheduler/pull/12180)).
|
* Change the default unix shell executor from sh to bash ([#12180](https://github.com/apache/dolphinscheduler/pull/12180)).
|
||||||
* Remove `deleteSource` in `download()` of `StorageOperate` ([#14084](https://github.com/apache/dolphinscheduler/pull/14084))
|
* Remove `deleteSource` in `download()` of `StorageOperate` ([#14084](https://github.com/apache/dolphinscheduler/pull/14084))
|
||||||
|
|
||||||
|
## 3.2.0
|
||||||
|
|
||||||
|
* Remove parameter `description` from public interfaces of new resource center ([#14394](https://github.com/apache/dolphinscheduler/pull/14394))
|
||||||
|
|
||||||
## 3.0.0
|
## 3.0.0
|
||||||
|
|
||||||
* Copy and import workflow without 'copy' suffix [#10607](https://github.com/apache/dolphinscheduler/pull/10607)
|
* Copy and import workflow without 'copy' suffix [#10607](https://github.com/apache/dolphinscheduler/pull/10607)
|
||||||
* Use semicolon as default sql segment separator [#10869](https://github.com/apache/dolphinscheduler/pull/10869)
|
* Use semicolon as default sql segment separator [#10869](https://github.com/apache/dolphinscheduler/pull/10869)
|
||||||
|
|
||||||
|
## 3.2.0
|
||||||
|
|
||||||
|
* Add required field `database` in /datasources/tables && /datasources/tableColumns Api [#14406](https://github.com/apache/dolphinscheduler/pull/14406)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,14 @@
|
||||||
|
|
||||||
#### Setup instructions, are available for each stable version of Apache DolphinScheduler below:
|
#### Setup instructions, are available for each stable version of Apache DolphinScheduler below:
|
||||||
|
|
||||||
|
### Versions: 3.2.0
|
||||||
|
|
||||||
|
#### Links: [3.2.0 Document](../3.2.0/user_doc/about/introduction.md)
|
||||||
|
|
||||||
|
### Versions: 3.1.8
|
||||||
|
|
||||||
|
#### Links: [3.1.8 Document](../3.1.8/user_doc/about/introduction.md)
|
||||||
|
|
||||||
### Versions: 3.1.7
|
### Versions: 3.1.7
|
||||||
|
|
||||||
#### Links: [3.1.7 Document](../3.1.7/user_doc/about/introduction.md)
|
#### Links: [3.1.7 Document](../3.1.7/user_doc/about/introduction.md)
|
||||||
|
|
@ -36,6 +44,10 @@
|
||||||
|
|
||||||
#### Links: [3.1.0 Document](../3.1.0/user_doc/about/introduction.md)
|
#### Links: [3.1.0 Document](../3.1.0/user_doc/about/introduction.md)
|
||||||
|
|
||||||
|
### Versions: 3.0.6
|
||||||
|
|
||||||
|
#### Links: [3.0.6 Document](../3.0.6/user_doc/about/introduction.md)
|
||||||
|
|
||||||
### Versions: 3.0.5
|
### Versions: 3.0.5
|
||||||
|
|
||||||
#### Links: [3.0.5 Document](../3.0.5/user_doc/about/introduction.md)
|
#### Links: [3.0.5 Document](../3.0.5/user_doc/about/introduction.md)
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ DolphinScheduler的目录结构如下:
|
||||||
├── alert-server DolphinScheduler alert-server命令、配置和依赖存放目录
|
├── alert-server DolphinScheduler alert-server命令、配置和依赖存放目录
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh DolphinScheduler alert-server启动脚本
|
│ │ └── start.sh DolphinScheduler alert-server启动脚本
|
||||||
|
│ │ └── jvm_args_env.sh DolphinScheduler alert-server jvm参数配置脚本
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml alert-server配置文件
|
│ │ ├── application.yaml alert-server配置文件
|
||||||
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
||||||
|
|
@ -41,6 +42,7 @@ DolphinScheduler的目录结构如下:
|
||||||
├── api-server DolphinScheduler api-server命令、配置和依赖存放目录
|
├── api-server DolphinScheduler api-server命令、配置和依赖存放目录
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh DolphinScheduler api-server启动脚本
|
│ │ └── start.sh DolphinScheduler api-server启动脚本
|
||||||
|
│ │ └── jvm_args_env.sh DolphinScheduler api-server jvm参数配置脚本
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml api-server配置文件
|
│ │ ├── application.yaml api-server配置文件
|
||||||
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
||||||
|
|
@ -53,6 +55,7 @@ DolphinScheduler的目录结构如下:
|
||||||
├── master-server DolphinScheduler master-server命令、配置和依赖存放目录
|
├── master-server DolphinScheduler master-server命令、配置和依赖存放目录
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh DolphinScheduler master-server启动脚本
|
│ │ └── start.sh DolphinScheduler master-server启动脚本
|
||||||
|
│ │ └── jvm_args_env.sh DolphinScheduler master-server jvm参数配置脚本
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml master-server配置文件
|
│ │ ├── application.yaml master-server配置文件
|
||||||
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
||||||
|
|
@ -64,6 +67,7 @@ DolphinScheduler的目录结构如下:
|
||||||
├── standalone-server DolphinScheduler standalone-server命令、配置和依赖存放目录
|
├── standalone-server DolphinScheduler standalone-server命令、配置和依赖存放目录
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh DolphinScheduler standalone-server启动脚本
|
│ │ └── start.sh DolphinScheduler standalone-server启动脚本
|
||||||
|
│ │ └── jvm_args_env.sh DolphinScheduler standalone-server jvm参数配置脚本
|
||||||
│ ├── conf
|
│ ├── conf
|
||||||
│ │ ├── application.yaml standalone-server配置文件
|
│ │ ├── application.yaml standalone-server配置文件
|
||||||
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
||||||
|
|
@ -74,6 +78,7 @@ DolphinScheduler的目录结构如下:
|
||||||
│ ├── libs standalone-server依赖jar包存放目录
|
│ ├── libs standalone-server依赖jar包存放目录
|
||||||
│ └── ui standalone-server相关前端WEB资源存放目录
|
│ └── ui standalone-server相关前端WEB资源存放目录
|
||||||
│
|
│
|
||||||
|
|
|
||||||
├── tools DolphinScheduler元数据工具命令、配置和依赖存放目录
|
├── tools DolphinScheduler元数据工具命令、配置和依赖存放目录
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── upgrade-schema.sh DolphinScheduler元数据创建/升级脚本
|
│ │ └── upgrade-schema.sh DolphinScheduler元数据创建/升级脚本
|
||||||
|
|
@ -83,16 +88,18 @@ DolphinScheduler的目录结构如下:
|
||||||
│ ├── libs 元数据工具依赖jar包存放目录
|
│ ├── libs 元数据工具依赖jar包存放目录
|
||||||
│ └── sql DolphinScheduler元数据创建/升级sql文件
|
│ └── sql DolphinScheduler元数据创建/升级sql文件
|
||||||
│
|
│
|
||||||
|
|
|
||||||
├── worker-server DolphinScheduler worker-server命令、配置和依赖存放目录
|
├── worker-server DolphinScheduler worker-server命令、配置和依赖存放目录
|
||||||
│ ├── bin
|
│ ├── bin
|
||||||
│ │ └── start.sh DolphinScheduler worker-server启动脚本
|
│ │ └── start.sh DolphinScheduler worker-server 启动脚本
|
||||||
│ ├── conf
|
│ │ └── jvm_args_env.sh DolphinScheduler worker-server jvm参数配置脚本
|
||||||
│ │ ├── application.yaml worker-server配置文件
|
│ ├── conf
|
||||||
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
│ │ ├── application.yaml worker-server配置文件
|
||||||
│ │ ├── common.properties 公共服务(存储等信息)配置文件
|
│ │ ├── bootstrap.yaml Spring Cloud 启动阶段配置文件, 通常不需要修改
|
||||||
│ │ ├── dolphinscheduler_env.sh worker-server环境变量配置加载脚本
|
│ │ ├── common.properties 公共服务(存储等信息)配置文件
|
||||||
│ │ └── logback-spring.xml worker-service日志配置文件
|
│ │ ├── dolphinscheduler_env.sh worker-server环境变量配置加载脚本
|
||||||
│ └── libs worker-server依赖jar包存放目录
|
│ │ └── logback-spring.xml worker-service日志配置文件
|
||||||
|
│ └── libs worker-server依赖jar包存放目录
|
||||||
│
|
│
|
||||||
└── ui 前端WEB资源目录
|
└── ui 前端WEB资源目录
|
||||||
```
|
```
|
||||||
|
|
@ -122,6 +129,8 @@ export DOLPHINSCHEDULER_OPTS="
|
||||||
```
|
```
|
||||||
|
|
||||||
> 不建议设置"-XX:DisableExplicitGC" , DolphinScheduler使用Netty进行通讯,设置该参数,可能会导致内存泄漏.
|
> 不建议设置"-XX:DisableExplicitGC" , DolphinScheduler使用Netty进行通讯,设置该参数,可能会导致内存泄漏.
|
||||||
|
>
|
||||||
|
>> 如果设置"-Djava.net.preferIPv6Addresses=true" 将会使用ipv6的IP地址, 如果设置"-Djava.net.preferIPv4Addresses=true"将会使用ipv4的IP地址, 如果都不设置,将会随机使用ipv4或者ipv6.
|
||||||
|
|
||||||
## 数据库连接相关配置
|
## 数据库连接相关配置
|
||||||
|
|
||||||
|
|
@ -191,37 +200,38 @@ common.properties配置文件目前主要是配置hadoop/s3/yarn/applicationId
|
||||||
|
|
||||||
默认配置如下:
|
默认配置如下:
|
||||||
|
|
||||||
| 参数 | 默认值 | 描述 |
|
| 参数 | 默认值 | 描述 |
|
||||||
|--|--|--|
|
|-----------------------------------------------|--|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|data.basedir.path | /tmp/dolphinscheduler | 本地工作目录,用于存放临时文件|
|
| data.basedir.path | /tmp/dolphinscheduler | 本地工作目录,用于存放临时文件 |
|
||||||
|resource.storage.type | NONE | 资源文件存储类型: HDFS,S3,OSS,GCS,NONE|
|
| resource.storage.type | NONE | 资源文件存储类型: HDFS,S3,OSS,GCS,ABS,NONE |
|
||||||
|resource.upload.path | /dolphinscheduler | 资源文件存储路径|
|
| resource.upload.path | /dolphinscheduler | 资源文件存储路径 |
|
||||||
|aws.access.key.id | minioadmin | S3 access key|
|
| aws.access.key.id | minioadmin | S3 access key |
|
||||||
|aws.secret.access.key | minioadmin | S3 secret access key|
|
| aws.secret.access.key | minioadmin | S3 secret access key |
|
||||||
|aws.region | us-east-1 | S3 区域|
|
| aws.region | us-east-1 | S3 区域 |
|
||||||
|aws.s3.endpoint | http://minio:9000 | S3 endpoint地址|
|
| aws.s3.endpoint | http://minio:9000 | S3 endpoint地址 |
|
||||||
|hdfs.root.user | hdfs | 如果存储类型为HDFS,需要配置拥有对应操作权限的用户|
|
| hdfs.root.user | hdfs | 如果存储类型为HDFS,需要配置拥有对应操作权限的用户 |
|
||||||
|fs.defaultFS | hdfs://mycluster:8020 | 请求地址如果resource.storage.type=S3,该值类似为: s3a://dolphinscheduler. 如果resource.storage.type=HDFS, 如果 hadoop 配置了 HA,需要复制core-site.xml 和 hdfs-site.xml 文件到conf目录|
|
| fs.defaultFS | hdfs://mycluster:8020 | 请求地址如果resource.storage.type=S3,该值类似为: s3a://dolphinscheduler. 如果resource.storage.type=HDFS, 如果 hadoop 配置了 HA,需要复制core-site.xml 和 hdfs-site.xml 文件到conf目录 |
|
||||||
|hadoop.security.authentication.startup.state | false | hadoop是否开启kerberos权限|
|
| hadoop.security.authentication.startup.state | false | hadoop是否开启kerberos权限 |
|
||||||
|java.security.krb5.conf.path | /opt/krb5.conf | kerberos配置目录|
|
| java.security.krb5.conf.path | /opt/krb5.conf | kerberos配置目录 |
|
||||||
|login.user.keytab.username | hdfs-mycluster@ESZ.COM | kerberos登录用户|
|
| login.user.keytab.username | hdfs-mycluster@ESZ.COM | kerberos登录用户 |
|
||||||
|login.user.keytab.path | /opt/hdfs.headless.keytab | kerberos登录用户keytab|
|
| login.user.keytab.path | /opt/hdfs.headless.keytab | kerberos登录用户keytab |
|
||||||
|kerberos.expire.time | 2 | kerberos过期时间,整数,单位为小时|
|
| kerberos.expire.time | 2 | kerberos过期时间,整数,单位为小时 |
|
||||||
|yarn.resourcemanager.ha.rm.ids | 192.168.xx.xx,192.168.xx.xx | yarn resourcemanager 地址, 如果resourcemanager开启了HA, 输入HA的IP地址(以逗号分隔),如果resourcemanager为单节点, 该值为空即可|
|
| yarn.resourcemanager.ha.rm.ids | 192.168.xx.xx,192.168.xx.xx | yarn resourcemanager 地址, 如果resourcemanager开启了HA, 输入HA的IP地址(以逗号分隔),如果resourcemanager为单节点, 该值为空即可 |
|
||||||
|yarn.application.status.address | http://ds1:8088/ws/v1/cluster/apps/%s | 如果resourcemanager开启了HA或者没有使用resourcemanager,保持默认值即可. 如果resourcemanager为单节点,你需要将ds1 配置为resourcemanager对应的hostname|
|
| yarn.application.status.address | http://ds1:8088/ws/v1/cluster/apps/%s | 如果resourcemanager开启了HA或者没有使用resourcemanager,保持默认值即可. 如果resourcemanager为单节点,你需要将ds1 配置为resourcemanager对应的hostname |
|
||||||
|development.state | false | 是否处于开发模式|
|
| development.state | false | 是否处于开发模式 |
|
||||||
|dolphin.scheduler.network.interface.preferred | NONE | 网卡名称|
|
| dolphin.scheduler.network.interface.preferred | NONE | 将会被使用的网卡名称 |
|
||||||
|dolphin.scheduler.network.priority.strategy | default | ip获取策略 default优先获取内网|
|
| dolphin.scheduler.network.interface.restrict | NONE | 禁止使用的网卡名称 |
|
||||||
|resource.manager.httpaddress.port | 8088 | resource manager的端口|
|
| dolphin.scheduler.network.priority.strategy | default | ip获取策略 default优先获取内网 |
|
||||||
|yarn.job.history.status.address | http://ds1:19888/ws/v1/history/mapreduce/jobs/%s | yarn的作业历史状态URL|
|
| resource.manager.httpaddress.port | 8088 | resource manager的端口 |
|
||||||
|datasource.encryption.enable | false | 是否启用datasource 加密|
|
| yarn.job.history.status.address | http://ds1:19888/ws/v1/history/mapreduce/jobs/%s | yarn的作业历史状态URL |
|
||||||
|datasource.encryption.salt | !@#$%^&* | datasource加密使用的salt|
|
| datasource.encryption.enable | false | 是否启用datasource 加密 |
|
||||||
|data-quality.jar.name | dolphinscheduler-data-quality-dev-SNAPSHOT.jar | 配置数据质量使用的jar包|
|
| datasource.encryption.salt | !@#$%^&* | datasource加密使用的salt |
|
||||||
|support.hive.oneSession | false | 设置hive SQL是否在同一个session中执行|
|
| data-quality.jar.name | dolphinscheduler-data-quality-dev-SNAPSHOT.jar | 配置数据质量使用的jar包 |
|
||||||
|sudo.enable | true | 是否开启sudo|
|
| support.hive.oneSession | false | 设置hive SQL是否在同一个session中执行 |
|
||||||
|alert.rpc.port | 50052 | Alert Server的RPC端口|
|
| sudo.enable | true | 是否开启sudo |
|
||||||
|zeppelin.rest.url | http://localhost:8080 | zeppelin RESTful API 接口地址|
|
| alert.rpc.port | 50052 | Alert Server的RPC端口 |
|
||||||
|appId.collect | log | 收集applicationId方式, 如果用aop方法,将配置log替换为aop,并将`bin/env/dolphinscheduler_env.sh`自动收集applicationId相关环境变量配置的注释取消掉,注意:aop不支持远程主机提交yarn作业的方式比如Beeline客户端提交,且如果用户环境覆盖了dolphinscheduler_env.sh收集applicationId相关环境变量配置,aop方法会失效|
|
| zeppelin.rest.url | http://localhost:8080 | zeppelin RESTful API 接口地址 |
|
||||||
|
| appId.collect | log | 收集applicationId方式, 如果用aop方法,将配置log替换为aop,并将`bin/env/dolphinscheduler_env.sh`自动收集applicationId相关环境变量配置的注释取消掉,注意:aop不支持远程主机提交yarn作业的方式比如Beeline客户端提交,且如果用户环境覆盖了dolphinscheduler_env.sh收集applicationId相关环境变量配置,aop方法会失效 |
|
||||||
|
|
||||||
## Api-server相关配置
|
## Api-server相关配置
|
||||||
|
|
||||||
|
|
@ -247,11 +257,22 @@ common.properties配置文件目前主要是配置hadoop/s3/yarn/applicationId
|
||||||
|security.authentication.ldap.user.identity-attribute|uid|LDAP用户身份标识字段名|
|
|security.authentication.ldap.user.identity-attribute|uid|LDAP用户身份标识字段名|
|
||||||
|security.authentication.ldap.user.email-attribute|mail|LDAP邮箱字段名|
|
|security.authentication.ldap.user.email-attribute|mail|LDAP邮箱字段名|
|
||||||
|security.authentication.ldap.user.not-exist-action|CREATE|当通过LDAP登陆时用户不存在的操作,默认值是: CREATE,可选值:CREATE、DENY|
|
|security.authentication.ldap.user.not-exist-action|CREATE|当通过LDAP登陆时用户不存在的操作,默认值是: CREATE,可选值:CREATE、DENY|
|
||||||
|traffic.control.global.switch|false|流量控制全局开关|
|
|security.authentication.ldap.ssl.enable|false|LDAP ssl开关|
|
||||||
|traffic.control.max-global-qps-rate|300|全局最大请求数/秒|
|
|security.authentication.ldap.ssl.trust-store|ldapkeystore.jks|LDAP jks文件绝对路径|
|
||||||
|traffic.control.tenant-switch|false|流量控制租户开关|
|
|security.authentication.ldap.ssl.trust-store-password|password|LDAP jks密码|
|
||||||
|traffic.control.default-tenant-qps-rate|10|默认租户最大请求数/秒限制|
|
|security.authentication.casdoor.user.admin||Casdoor登陆时,系统管理员账号|
|
||||||
|traffic.control.customize-tenant-qps-rate||自定义租户最大请求数/秒限制|
|
|casdoor.endpoint||Casdoor服务器URL|
|
||||||
|
|casdoor.client-id||Casdoor中的ID|
|
||||||
|
|casdoor.client-secret||Casdoor中的密钥|
|
||||||
|
|casdoor.certificate||Casdoor中的证书|
|
||||||
|
|casdoor.organization-name||Casdoor中的组织名称|
|
||||||
|
|casdoor.application-name||Casdoor中的应用名称|
|
||||||
|
|casdoor.redirect-url||dolphinscheduler登录URL|
|
||||||
|
|api.traffic.control.global.switch|false|流量控制全局开关|
|
||||||
|
|api.traffic.control.max-global-qps-rate|300|全局最大请求数/秒|
|
||||||
|
|api.traffic.control.tenant-switch|false|流量控制租户开关|
|
||||||
|
|api.traffic.control.default-tenant-qps-rate|10|默认租户最大请求数/秒限制|
|
||||||
|
|api.traffic.control.customize-tenant-qps-rate||自定义租户最大请求数/秒限制|
|
||||||
|
|
||||||
## Master Server相关配置
|
## Master Server相关配置
|
||||||
|
|
||||||
|
|
@ -355,12 +376,12 @@ export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
|
||||||
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
||||||
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
||||||
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
||||||
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
|
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
|
||||||
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
||||||
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
||||||
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
|
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
|
||||||
|
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
|
|
||||||
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
|
||||||
export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ public final class LoginPage {
|
||||||
|
|
||||||
其余的都是类似的情况,可参考具体的源码来理解。
|
其余的都是类似的情况,可参考具体的源码来理解。
|
||||||
|
|
||||||
https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api.test/cases
|
https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api/test/cases
|
||||||
|
|
||||||
## 补充
|
## 补充
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
org.apache.dolphinscheduler.spi.datasource.DataSourceChannel
|
org.apache.dolphinscheduler.spi.datasource.DataSourceChannel
|
||||||
org.apache.dolphinscheduler.spi.datasource.DataSourceChannelFactory
|
org.apache.dolphinscheduler.spi.datasource.DataSourceChannelFactory
|
||||||
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient
|
org.apache.dolphinscheduler.spi.datasource.client.DataSourceClient
|
||||||
|
|
||||||
1. 第一步数据源插件实现以上接口和继承通用client即可,具体可以参考sqlserver、mysql等数据源插件实现,所有RDBMS插件的添加方式都是一样的。
|
1. 第一步数据源插件实现以上接口和继承通用client即可,具体可以参考sqlserver、mysql等数据源插件实现,所有RDBMS插件的添加方式都是一样的。
|
||||||
2. 在数据源插件pom.xml添加驱动配置
|
2. 在数据源插件pom.xml添加驱动配置
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ cd dolphinscheduler
|
||||||
./mvnw -B clean package \
|
./mvnw -B clean package \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dmaven.checkstyle.skip \
|
-Dspotless.skip=true \
|
||||||
-Ddocker.tag=<TAG> \
|
-Ddocker.tag=<TAG> \
|
||||||
-Pdocker,release
|
-Pdocker,release
|
||||||
```
|
```
|
||||||
|
|
@ -76,7 +76,7 @@ cd dolphinscheduler
|
||||||
./mvnw -B clean deploy \
|
./mvnw -B clean deploy \
|
||||||
-Dmaven.test.skip \
|
-Dmaven.test.skip \
|
||||||
-Dmaven.javadoc.skip \
|
-Dmaven.javadoc.skip \
|
||||||
-Dmaven.checkstyle.skip \
|
-Dspotless.skip = true \
|
||||||
-Dmaven.deploy.skip \
|
-Dmaven.deploy.skip \
|
||||||
-Ddocker.tag=<TAG> \
|
-Ddocker.tag=<TAG> \
|
||||||
-Ddocker.hub=<HUB_URL> \
|
-Ddocker.hub=<HUB_URL> \
|
||||||
|
|
|
||||||
|
|
@ -215,7 +215,7 @@ git push "${GH_REMOTE}" "${VERSION}"-release
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 运行发版校验
|
# 运行发版校验
|
||||||
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DdryRun=true -Dusername="${GH_USERNAME}"
|
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dspotless.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DdryRun=true -Dusername="${GH_USERNAME}"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `-Prelease`: 选择 release 的 profile,这个 profile 会打包所有源码、jar 文件以及可执行二进制包。
|
- `-Prelease`: 选择 release 的 profile,这个 profile 会打包所有源码、jar 文件以及可执行二进制包。
|
||||||
|
|
@ -233,7 +233,7 @@ mvn release:clean
|
||||||
然后准备执行发布。
|
然后准备执行发布。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DpushChanges=false -Dusername="${GH_USERNAME}"
|
mvn release:prepare -Prelease -Darguments="-Dmaven.test.skip=true -Dspotless.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -DpushChanges=false -Dusername="${GH_USERNAME}"
|
||||||
```
|
```
|
||||||
|
|
||||||
和上一步演练的命令基本相同,去掉了 `-DdryRun=true` 参数。
|
和上一步演练的命令基本相同,去掉了 `-DdryRun=true` 参数。
|
||||||
|
|
@ -262,7 +262,7 @@ git push "${GH_REMOTE}" --tags
|
||||||
#### 部署发布
|
#### 部署发布
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mvn release:perform -Prelease -Darguments="-Dmaven.test.skip=true -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -Dusername="${GH_USERNAME}"
|
mvn release:perform -Prelease -Darguments="-Dmaven.test.skip=true -Dspotless.skip=true -Dmaven.javadoc.skip=true -Dspotless.check.skip=true" -DautoVersionSubmodules=true -Dusername="${GH_USERNAME}"
|
||||||
```
|
```
|
||||||
|
|
||||||
执行完该命令后,待发布版本会自动上传到 Apache 的临时筹备仓库(staging repository)。你可以通过访问 [apache staging repositories](https://repository.apache.org/#stagingRepositories)
|
执行完该命令后,待发布版本会自动上传到 Apache 的临时筹备仓库(staging repository)。你可以通过访问 [apache staging repositories](https://repository.apache.org/#stagingRepositories)
|
||||||
|
|
|
||||||
|
|
@ -199,16 +199,16 @@ A: 1,在 **流程定义列表**,点击 **启动** 按钮
|
||||||
|
|
||||||
## Q:Python 任务设置 Python 版本
|
## Q:Python 任务设置 Python 版本
|
||||||
|
|
||||||
A: 只需要修改 `bin/env/dolphinscheduler_env.sh` 中的 PYTHON_HOME
|
A: 只需要修改 `bin/env/dolphinscheduler_env.sh` 中的 PYTHON_LAUNCHER
|
||||||
|
|
||||||
```
|
```
|
||||||
export PYTHON_HOME=/bin/python
|
export PYTHON_LAUNCHER=/bin/python
|
||||||
```
|
```
|
||||||
|
|
||||||
注意:这了 **PYTHON_HOME** ,是 python 命令的绝对路径,而不是单纯的 PYTHON_HOME,还需要注意的是 export PATH 的时候,需要直接
|
注意:这了 **PYTHON_LAUNCHER** ,是 python 命令的绝对路径,而不是单纯的 PYTHON_LAUNCHER,还需要注意的是 export PATH 的时候,需要直接
|
||||||
|
|
||||||
```
|
```
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
|
||||||
```
|
```
|
||||||
|
|
||||||
## Q:Worker Task 通过 sudo -u 租户 sh xxx.command 会产生子进程,在 kill 的时候,是否会杀掉
|
## Q:Worker Task 通过 sudo -u 租户 sh xxx.command 会产生子进程,在 kill 的时候,是否会杀掉
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
# DORIS 数据源
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- 数据源:选择 DORIS
|
||||||
|
- 数据源名称:输入数据源的名称
|
||||||
|
- 描述:输入数据源的描述
|
||||||
|
- IP 主机名:输入连接 DORIS 的 IP(如有多个IP,请用`,`分隔)
|
||||||
|
- 端口:输入连接 DORIS 的端口
|
||||||
|
- 用户名:设置连接 DORIS 的用户名
|
||||||
|
- 密码:设置连接 DORIS 的密码
|
||||||
|
- 数据库名:输入连接 DORIS 的数据库名称
|
||||||
|
- Jdbc 连接参数:用于 DORIS 连接的参数设置,以 JSON 形式填写
|
||||||
|
|
||||||
|
## 是否原生支持
|
||||||
|
|
||||||
|
否,使用前需请参考 [数据源配置](../howto/datasource-setting.md) 中的 "数据源中心" 章节激活数据源。
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
# HANA 数据源
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- 数据源:选择 HANA
|
||||||
|
- 数据源名称:输入数据源的名称
|
||||||
|
- 描述:输入数据源的描述
|
||||||
|
- IP 主机名:输入连接 HANA 的 IP
|
||||||
|
- 端口:输入连接 HANA 的端口
|
||||||
|
- 用户名:设置连接 HANA 的用户名
|
||||||
|
- 密码:设置连接 HANA 的密码
|
||||||
|
- 数据库名:输入连接 HANA 的数据库名称
|
||||||
|
- Jdbc 连接参数:用于 HANA 连接的参数设置,以 JSON 形式填写
|
||||||
|
|
||||||
|
## 是否原生支持
|
||||||
|
|
||||||
|
否,使用前需请参考 [数据源配置](../howto/datasource-setting.md) 中的 "数据源中心" 章节激活数据源。
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
# VERTICA 数据源
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
| **参数名称** | **参数描述** |
|
||||||
|
|-----------|--------------------------------|
|
||||||
|
| 数据源 | 选择 VERTICA |
|
||||||
|
| 数据源名称 | 输入数据源的名称 |
|
||||||
|
| 描述 | 输入数据源的描述 |
|
||||||
|
| IP 主机名 | 输入连接 VERTICA 的 IP |
|
||||||
|
| 端口 | 输入连接 VERTICA 的端口 |
|
||||||
|
| 用户名 | 设置连接 VERTICA 的用户名 |
|
||||||
|
| 密码 | 设置连接 VERTICA 的密码 |
|
||||||
|
| 数据库名 | 输入连接 VERTICA 的数据库名称 |
|
||||||
|
| JDBC 连接参数 | 用于 VERTICA 连接的参数设置,以 JSON 形式填写 |
|
||||||
|
|
||||||
|
## 是否原生支持
|
||||||
|
|
||||||
|
是,数据源不需要任务附加操作即可使用。
|
||||||
|
|
@ -30,9 +30,9 @@
|
||||||
mkdir -p /opt
|
mkdir -p /opt
|
||||||
cd /opt
|
cd /opt
|
||||||
# 解压缩
|
# 解压缩
|
||||||
tar -zxvf apache-dolphinscheduler-<version>-bin.tar.gz -C /opt
|
tar -zxvf apache-dolphinscheduler-3.2.0-bin.tar.gz -C /opt
|
||||||
cd /opt
|
cd /opt
|
||||||
mv apache-dolphinscheduler-<version>-bin dolphinscheduler
|
mv apache-dolphinscheduler-3.2.0-bin dolphinscheduler
|
||||||
```
|
```
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
|
|
@ -80,12 +80,12 @@ sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
|
||||||
export HADOOP_HOME=/opt/soft/hadoop
|
export HADOOP_HOME=/opt/soft/hadoop
|
||||||
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
|
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
|
||||||
export SPARK_HOME=/opt/soft/spark
|
export SPARK_HOME=/opt/soft/spark
|
||||||
export PYTHON_HOME=/opt/soft/python
|
export PYTHON_LAUNCHER=/opt/soft/python/bin/python3
|
||||||
export JAVA_HOME=/opt/soft/java
|
export JAVA_HOME=/opt/soft/java
|
||||||
export HIVE_HOME=/opt/soft/hive
|
export HIVE_HOME=/opt/soft/hive
|
||||||
export FLINK_HOME=/opt/soft/flink
|
export FLINK_HOME=/opt/soft/flink
|
||||||
export DATAX_HOME=/opt/soft/datax/bin/datax.py
|
export DATAX_LAUNCHER=/opt/soft/datax/bin/datax.py
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,16 +12,16 @@ Kubernetes 部署目的是在 Kubernetes 集群中部署 DolphinScheduler 服务
|
||||||
|
|
||||||
## 安装 dolphinscheduler
|
## 安装 dolphinscheduler
|
||||||
|
|
||||||
请下载源码包 apache-dolphinscheduler-<version>-src.tar.gz,下载地址: [下载](https://dolphinscheduler.apache.org/zh-cn/download)
|
请下载源码包 apache-dolphinscheduler-3.2.0-src.tar.gz,下载地址: [下载](https://dolphinscheduler.apache.org/zh-cn/download)
|
||||||
|
|
||||||
发布一个名为 `dolphinscheduler` 的版本(release),请执行以下命令:
|
发布一个名为 `dolphinscheduler` 的版本(release),请执行以下命令:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ tar -zxvf apache-dolphinscheduler-<version>-src.tar.gz
|
$ tar -zxvf apache-dolphinscheduler-3.2.0-src.tar.gz
|
||||||
$ cd apache-dolphinscheduler-<version>-src/deploy/kubernetes/dolphinscheduler
|
$ cd apache-dolphinscheduler-3.2.0-src/deploy/kubernetes/dolphinscheduler
|
||||||
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
$ helm dependency update .
|
$ helm dependency update .
|
||||||
$ helm install dolphinscheduler . --set image.tag=<version>
|
$ helm install dolphinscheduler . --set image.tag=3.2.0
|
||||||
```
|
```
|
||||||
|
|
||||||
将名为 `dolphinscheduler` 的版本(release) 发布到 `test` 的命名空间中:
|
将名为 `dolphinscheduler` 的版本(release) 发布到 `test` 的命名空间中:
|
||||||
|
|
@ -231,9 +231,9 @@ kubectl scale --replicas=6 sts dolphinscheduler-worker -n test # with test names
|
||||||
2. 创建一个新的 `Dockerfile`,用于添加 MySQL 的驱动包:
|
2. 创建一个新的 `Dockerfile`,用于添加 MySQL 的驱动包:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:3.2.0
|
||||||
# 例如
|
# 例如
|
||||||
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:<version>
|
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:3.2.0
|
||||||
|
|
||||||
# 注意,如果构建的是dolphinscheduler-tools镜像
|
# 注意,如果构建的是dolphinscheduler-tools镜像
|
||||||
# 需要将下面一行修改为COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/tools/libs
|
# 需要将下面一行修改为COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/tools/libs
|
||||||
|
|
@ -282,9 +282,9 @@ externalDatabase:
|
||||||
2. 创建一个新的 `Dockerfile`,用于添加 MySQL 或者 Oracle 驱动包:
|
2. 创建一个新的 `Dockerfile`,用于添加 MySQL 或者 Oracle 驱动包:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-<service>:3.2.0
|
||||||
# 例如
|
# 例如
|
||||||
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:<version>
|
# FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.2.0
|
||||||
|
|
||||||
# 如果你想支持 MySQL 数据源
|
# 如果你想支持 MySQL 数据源
|
||||||
COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/libs
|
COPY mysql-connector-java-8.0.16.jar /opt/dolphinscheduler/libs
|
||||||
|
|
@ -314,7 +314,7 @@ docker build -t apache/dolphinscheduler-<service>:new-driver .
|
||||||
1. 创建一个新的 `Dockerfile`,用于安装 pip:
|
1. 创建一个新的 `Dockerfile`,用于安装 pip:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.2.0
|
||||||
COPY requirements.txt /tmp
|
COPY requirements.txt /tmp
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends python-pip && \
|
apt-get install -y --no-install-recommends python-pip && \
|
||||||
|
|
@ -349,7 +349,7 @@ docker build -t apache/dolphinscheduler-worker:pip .
|
||||||
1. 创建一个新的 `Dockerfile`,用于安装 Python 3:
|
1. 创建一个新的 `Dockerfile`,用于安装 Python 3:
|
||||||
|
|
||||||
```
|
```
|
||||||
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:<version>
|
FROM dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.2.0
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends python3 && \
|
apt-get install -y --no-install-recommends python3 && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
@ -371,7 +371,7 @@ docker build -t apache/dolphinscheduler-worker:python3 .
|
||||||
|
|
||||||
4. 修改 `values.yaml` 文件中 image 的 `repository` 字段,并更新 `tag` 为 `python3`
|
4. 修改 `values.yaml` 文件中 image 的 `repository` 字段,并更新 `tag` 为 `python3`
|
||||||
|
|
||||||
5. 修改 `values.yaml` 文件中的 `PYTHON_HOME` 为 `/usr/bin/python3`
|
5. 修改 `values.yaml` 文件中的 `PYTHON_LAUNCHER` 为 `/usr/bin/python3`
|
||||||
|
|
||||||
6. 部署 dolphinscheduler (详见**安装 dolphinscheduler**)
|
6. 部署 dolphinscheduler (详见**安装 dolphinscheduler**)
|
||||||
|
|
||||||
|
|
@ -513,6 +513,31 @@ common:
|
||||||
SW_GRPC_LOG_SERVER_PORT: "11800"
|
SW_GRPC_LOG_SERVER_PORT: "11800"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 如何单独部署特定组件?
|
||||||
|
|
||||||
|
修改 `values.yaml` 文件中的 `api.enabled`, `alert.enabled` `master.enabled` 或 `worker.enabled` 配置项
|
||||||
|
|
||||||
|
例如,在一个集群中需要同时将 worker 部署到 CPU 服务器和 GPU 服务器,并且 worker 使用不同的镜像,可以这样做:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装 master、api-server、alert-server以及其他默认组件,但是不安装 worker
|
||||||
|
helm install dolphinscheduler . --set worker.enabled=false
|
||||||
|
# 禁用其他组件的安装,只安装 worker,使用自行建构建的 CPU镜像,通过 nodeselector部署到附带 x86标签的 CPU服务器,使用 zookeeper作为外部注册中心
|
||||||
|
helm install dolphinscheduler-cpu-worker . \
|
||||||
|
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
|
||||||
|
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
|
||||||
|
--set worker.enabled=true --set image.tag=latest-cpu --set worker.nodeSelector.cpu="x86" \
|
||||||
|
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
|
||||||
|
# 禁用其他组件的安装,只安装 worker,使用自行建构建的 GPU 镜像,通过 nodeselector部署到附带 a100标签的 gpu服务器,使用zookeeper作为外部注册中心
|
||||||
|
helm install dolphinscheduler-gpu-worker . \
|
||||||
|
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
|
||||||
|
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
|
||||||
|
--set worker.enabled=true --set image.tag=latest-gpu --set worker.nodeSelector.gpu="a100" \
|
||||||
|
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
|
||||||
|
```
|
||||||
|
|
||||||
|
请注意,以上步骤仅供参考,具体操作需要根据实际情况进行调整。
|
||||||
|
|
||||||
## 附录-配置
|
## 附录-配置
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
|
|
@ -552,7 +577,7 @@ common:
|
||||||
| | | |
|
| | | |
|
||||||
| `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` |
|
| `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` |
|
||||||
| `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` |
|
| `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` |
|
||||||
| `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, NONE | `HDFS` |
|
| `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, ABS, NONE | `HDFS` |
|
||||||
| `common.configmap.RESOURCE_UPLOAD_PATH` | Resource store on HDFS/S3 path, please make sure the directory exists on hdfs and have read write permissions | `/dolphinscheduler` |
|
| `common.configmap.RESOURCE_UPLOAD_PATH` | Resource store on HDFS/S3 path, please make sure the directory exists on hdfs and have read write permissions | `/dolphinscheduler` |
|
||||||
| `common.configmap.FS_DEFAULT_FS` | Resource storage file system like `file:///`, `hdfs://mycluster:8020` or `s3a://dolphinscheduler` | `file:///` |
|
| `common.configmap.FS_DEFAULT_FS` | Resource storage file system like `file:///`, `hdfs://mycluster:8020` or `s3a://dolphinscheduler` | `file:///` |
|
||||||
| `common.configmap.FS_S3A_ENDPOINT` | S3 endpoint when `common.configmap.RESOURCE_STORAGE_TYPE` is set to `S3` | `s3.xxx.amazonaws.com` |
|
| `common.configmap.FS_S3A_ENDPOINT` | S3 endpoint when `common.configmap.RESOURCE_STORAGE_TYPE` is set to `S3` | `s3.xxx.amazonaws.com` |
|
||||||
|
|
@ -574,11 +599,11 @@ common:
|
||||||
| `common.configmap.HADOOP_HOME` | Set `HADOOP_HOME` for DolphinScheduler's task environment | `/opt/soft/hadoop` |
|
| `common.configmap.HADOOP_HOME` | Set `HADOOP_HOME` for DolphinScheduler's task environment | `/opt/soft/hadoop` |
|
||||||
| `common.configmap.HADOOP_CONF_DIR` | Set `HADOOP_CONF_DIR` for DolphinScheduler's task environment | `/opt/soft/hadoop/etc/hadoop` |
|
| `common.configmap.HADOOP_CONF_DIR` | Set `HADOOP_CONF_DIR` for DolphinScheduler's task environment | `/opt/soft/hadoop/etc/hadoop` |
|
||||||
| `common.configmap.SPARK_HOME` | Set `SPARK_HOME` for DolphinScheduler's task environment | `/opt/soft/spark` |
|
| `common.configmap.SPARK_HOME` | Set `SPARK_HOME` for DolphinScheduler's task environment | `/opt/soft/spark` |
|
||||||
| `common.configmap.PYTHON_HOME` | Set `PYTHON_HOME` for DolphinScheduler's task environment | `/usr/bin/python` |
|
| `common.configmap.PYTHON_LAUNCHER` | Set `PYTHON_LAUNCHER` for DolphinScheduler's task environment | `/usr/bin/python` |
|
||||||
| `common.configmap.JAVA_HOME` | Set `JAVA_HOME` for DolphinScheduler's task environment | `/opt/java/openjdk` |
|
| `common.configmap.JAVA_HOME` | Set `JAVA_HOME` for DolphinScheduler's task environment | `/opt/java/openjdk` |
|
||||||
| `common.configmap.HIVE_HOME` | Set `HIVE_HOME` for DolphinScheduler's task environment | `/opt/soft/hive` |
|
| `common.configmap.HIVE_HOME` | Set `HIVE_HOME` for DolphinScheduler's task environment | `/opt/soft/hive` |
|
||||||
| `common.configmap.FLINK_HOME` | Set `FLINK_HOME` for DolphinScheduler's task environment | `/opt/soft/flink` |
|
| `common.configmap.FLINK_HOME` | Set `FLINK_HOME` for DolphinScheduler's task environment | `/opt/soft/flink` |
|
||||||
| `common.configmap.DATAX_HOME` | Set `DATAX_HOME` for DolphinScheduler's task environment | `/opt/soft/datax` |
|
| `common.configmap.DATAX_LAUNCHER` | Set `DATAX_LAUNCHER` for DolphinScheduler's task environment | `/opt/soft/datax` |
|
||||||
| `common.sharedStoragePersistence.enabled` | Set `common.sharedStoragePersistence.enabled` to `true` to mount a shared storage volume for Hadoop, Spark binary and etc | `false` |
|
| `common.sharedStoragePersistence.enabled` | Set `common.sharedStoragePersistence.enabled` to `true` to mount a shared storage volume for Hadoop, Spark binary and etc | `false` |
|
||||||
| `common.sharedStoragePersistence.mountPath` | The mount path for the shared storage volume | `/opt/soft` |
|
| `common.sharedStoragePersistence.mountPath` | The mount path for the shared storage volume | `/opt/soft` |
|
||||||
| `common.sharedStoragePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` |
|
| `common.sharedStoragePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` |
|
||||||
|
|
@ -589,6 +614,7 @@ common:
|
||||||
| `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` |
|
| `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` |
|
||||||
| `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `master.enabled` | Enable or disable the Master component | true |
|
||||||
| `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
| `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
||||||
| `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
| `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
||||||
| `master.annotations` | The `annotations` for master server | `{}` |
|
| `master.annotations` | The `annotations` for master server | `{}` |
|
||||||
|
|
@ -623,6 +649,7 @@ common:
|
||||||
| `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
| `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
||||||
| `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `worker.enabled` | Enable or disable the Worker component | true |
|
||||||
| `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
| `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
|
||||||
| `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
| `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
|
||||||
| `worker.annotations` | The `annotations` for worker server | `{}` |
|
| `worker.annotations` | The `annotations` for worker server | `{}` |
|
||||||
|
|
@ -657,6 +684,7 @@ common:
|
||||||
| `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
| `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
||||||
| `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `alert.enabled` | Enable or disable the Alert-Server component | true |
|
||||||
| `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
| `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
||||||
| `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
| `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
||||||
| `alert.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
| `alert.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
||||||
|
|
@ -698,6 +726,7 @@ common:
|
||||||
| `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
| `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
|
||||||
| `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
| `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
|
||||||
| | | |
|
| | | |
|
||||||
|
| `api.enabled` | Enable or disable the API-Server component | true |
|
||||||
| `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
| `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
|
||||||
| `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
| `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
|
||||||
| `api.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
| `api.strategy.rollingUpdate.maxSurge` | The maximum number of pods that can be scheduled above the desired number of pods | `25%` |
|
||||||
|
|
|
||||||
|
|
@ -128,12 +128,12 @@ export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-lo
|
||||||
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
|
||||||
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
|
||||||
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
|
||||||
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
|
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
|
||||||
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
|
||||||
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
|
||||||
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
|
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/python3}
|
||||||
|
|
||||||
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
|
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
|
||||||
```
|
```
|
||||||
|
|
||||||
## 初始化数据库
|
## 初始化数据库
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Standalone 仅适用于 DolphinScheduler 的快速体验.
|
||||||
## 前置准备工作
|
## 前置准备工作
|
||||||
|
|
||||||
- JDK:下载[JDK][jdk] (1.8+),安装并配置 `JAVA_HOME` 环境变量,并将其下的 `bin` 目录追加到 `PATH` 环境变量中。如果你的环境中已存在,可以跳过这步。
|
- JDK:下载[JDK][jdk] (1.8+),安装并配置 `JAVA_HOME` 环境变量,并将其下的 `bin` 目录追加到 `PATH` 环境变量中。如果你的环境中已存在,可以跳过这步。
|
||||||
- 二进制包:在[下载页面](https://dolphinscheduler.apache.org/en-us/download/<version>)下载 DolphinScheduler 二进制包 <!-- markdown-link-check-disable-line -->
|
- 二进制包:在[下载页面](https://dolphinscheduler.apache.org/en-us/download/3.2.0)下载 DolphinScheduler 二进制包 <!-- markdown-link-check-disable-line -->
|
||||||
|
|
||||||
## 启动 DolphinScheduler Standalone Server
|
## 启动 DolphinScheduler Standalone Server
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ API 和 Worker 服务共用 `/opt/dolphinscheduler/conf/common.properties` ,
|
||||||
|
|
||||||
## 如何支持 Python 3?
|
## 如何支持 Python 3?
|
||||||
|
|
||||||
Worker 服务默认安装了 Python3,使用时可以添加环境变量 `PYTHON_HOME=/usr/bin/python3`
|
Worker 服务默认安装了 Python3,使用时可以添加环境变量 `PYTHON_LAUNCHER=/usr/bin/python3`
|
||||||
|
|
||||||
## 如何支持 Hadoop, Spark, DataX 等?
|
## 如何支持 Hadoop, Spark, DataX 等?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,6 @@ metrics exporter端口`server.port`是在application.yaml里定义的: master: `
|
||||||
- ds.task.dispatch.failure.count: (counter) 分发失败的任务数量,重试也包含在内
|
- ds.task.dispatch.failure.count: (counter) 分发失败的任务数量,重试也包含在内
|
||||||
- ds.task.dispatch.error.count: (counter) 分发任务的错误数量
|
- ds.task.dispatch.error.count: (counter) 分发任务的错误数量
|
||||||
- ds.task.execution.count.by.type: (counter) 任务执行数量,按标签`task_type`聚类
|
- ds.task.execution.count.by.type: (counter) 任务执行数量,按标签`task_type`聚类
|
||||||
- ds.task.running: (gauge) 正在运行的任务数量
|
|
||||||
- ds.task.prepared: (gauge) 准备好且待提交的任务数量
|
- ds.task.prepared: (gauge) 准备好且待提交的任务数量
|
||||||
- ds.task.execution.count: (counter) 已执行的任务数量
|
- ds.task.execution.count: (counter) 已执行的任务数量
|
||||||
- ds.task.execution.duration: (histogram) 任务执行时长
|
- ds.task.execution.duration: (histogram) 任务执行时长
|
||||||
|
|
@ -104,6 +103,12 @@ metrics exporter端口`server.port`是在application.yaml里定义的: master: `
|
||||||
### Worker Server指标
|
### Worker Server指标
|
||||||
|
|
||||||
- ds.worker.overload.count: (counter) worker过载次数
|
- ds.worker.overload.count: (counter) worker过载次数
|
||||||
|
- ds.worker.task: (gauge) worker上任务总数,包含等待提交和正在执行的任务
|
||||||
|
- ds.worker.execute.queue.size: (gauge) worker上等待提交的任务总数
|
||||||
|
- ds.worker.active.execute.thread: (gauge) worker上正在执行的任务总数
|
||||||
|
- ds.worker.memory.available: (gauge) worker机器可用物理内存 (GB)
|
||||||
|
- ds.worker.cpu.usage: (gauge) worker机器cpu使用百分比
|
||||||
|
- ds.worker.memory.usage: (gauge) worker机器内存使用百分比
|
||||||
- ds.worker.full.submit.queue.count: (counter) worker提交队列全满次数
|
- ds.worker.full.submit.queue.count: (counter) worker提交队列全满次数
|
||||||
- ds.worker.resource.download.count: (counter) worker下载资源文件的次数,可由`status`标签切分
|
- ds.worker.resource.download.count: (counter) worker下载资源文件的次数,可由`status`标签切分
|
||||||
- ds.worker.resource.download.duration: (histogram) worker下载资源文件时花费的时间分布
|
- ds.worker.resource.download.duration: (histogram) worker下载资源文件时花费的时间分布
|
||||||
|
|
@ -113,7 +118,7 @@ metrics exporter端口`server.port`是在application.yaml里定义的: master: `
|
||||||
|
|
||||||
- ds.api.request.count: (counter) api请求次数
|
- ds.api.request.count: (counter) api请求次数
|
||||||
- ds.api.response.count: (counter) api响应次数,可由标签`code`切分
|
- ds.api.response.count: (counter) api响应次数,可由标签`code`切分
|
||||||
- ds.api.response.time: (histogram) api响应时间分布
|
- ds.api.response.time: (timer) api响应时间分布,可由标签`user_id`切分
|
||||||
- ds.api.resource.upload.size: (histogram) api上传资源文件大小的分布(bytes)
|
- ds.api.resource.upload.size: (histogram) api上传资源文件大小的分布(bytes)
|
||||||
- ds.api.resource.download.size: (histogram) api下载资源文件大小的分布(bytes)
|
- ds.api.resource.download.size: (histogram) api下载资源文件大小的分布(bytes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
| system.biz.curdate | `${system.biz.curdate}` | 日常调度实例定时的定时时间,格式为 yyyyMMdd |
|
| system.biz.curdate | `${system.biz.curdate}` | 日常调度实例定时的定时时间,格式为 yyyyMMdd |
|
||||||
| system.datetime | `${system.datetime}` | 日常调度实例定时的定时时间,格式为 yyyyMMddHHmmss |
|
| system.datetime | `${system.datetime}` | 日常调度实例定时的定时时间,格式为 yyyyMMddHHmmss |
|
||||||
| system.task.execute.path | `${system.task.execute.path}` | 当前任务执行的绝对路径 |
|
| system.task.execute.path | `${system.task.execute.path}` | 当前任务执行的绝对路径 |
|
||||||
| system.task.instance.id | `${ssystem.task.instance.id}` | 当前任务实例的ID |
|
| system.task.instance.id | `${system.task.instance.id}` | 当前任务实例的ID |
|
||||||
| system.task.definition.name | `${system.task.definition.name}` | 当前任务所属任务定义的名称 |
|
| system.task.definition.name | `${system.task.definition.name}` | 当前任务所属任务定义的名称 |
|
||||||
| system.task.definition.code | `${system.task.definition.code}` | 当前任务所属任务定义的code |
|
| system.task.definition.code | `${system.task.definition.code}` | 当前任务所属任务定义的code |
|
||||||
| system.workflow.instance.id | `${system.workflow.instance.id}` | 当前任务所属工作流实例ID |
|
| system.workflow.instance.id | `${system.workflow.instance.id}` | 当前任务所属工作流实例ID |
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,10 @@ DolphinScheduler 允许在任务间进行参数传递,目前传递方向仅支
|
||||||
* [SQL](../task/sql.md)
|
* [SQL](../task/sql.md)
|
||||||
* [Procedure](../task/stored-procedure.md)
|
* [Procedure](../task/stored-procedure.md)
|
||||||
* [Python](../task/python.md)
|
* [Python](../task/python.md)
|
||||||
|
* [SubProcess](../task/sub-process.md)
|
||||||
|
* [Kubernetes](../task/kubernetes.md)
|
||||||
|
|
||||||
当定义上游节点时,如果有需要将该节点的结果传递给有依赖关系的下游节点,需要在【当前节点设置】的【自定义参数】设置一个方向是 OUT 的变量。目前我们主要针对 SQL 和 SHELL 节点做了可以向下传递参数的功能。
|
当定义上游节点时,如果有需要将该节点的结果传递给有依赖关系的下游节点,需要在【当前节点设置】的【自定义参数】设置一个方向是 OUT 的变量。如果是 SubProcess 节点无需在【当前节点设置】中设置变量,需要在子流程的工作流定义中设置一个方向是 OUT 的变量。
|
||||||
|
|
||||||
上游传递的参数可以在下游节点中被更新,更新方法与[设置参数](#创建-shell-任务并设置参数)相同。
|
上游传递的参数可以在下游节点中被更新,更新方法与[设置参数](#创建-shell-任务并设置参数)相同。
|
||||||
|
|
||||||
|
|
@ -87,4 +89,40 @@ Node_mysql 运行结果如下:
|
||||||
使用 `print('${setValue(key=%s)}' % value)`,DolphinScheduler会捕捉输出中的 `${setValue(key=value}`来进行参数捕捉,从而传递到下游
|
使用 `print('${setValue(key=%s)}' % value)`,DolphinScheduler会捕捉输出中的 `${setValue(key=value}`来进行参数捕捉,从而传递到下游
|
||||||
|
|
||||||
如
|
如
|
||||||

|

|
||||||
|
|
||||||
|
#### SubProcess 任务传递参数
|
||||||
|
|
||||||
|
在子流程的工作流定义中定义方向是 OUT 的变量作为输出参数,可以将这些参数传递到子流程节点的下游任务。
|
||||||
|
|
||||||
|
在子流程的工作流定义中创建 A 任务,在自定义参数中添加 var1 和 var2 参数,并编写如下脚本:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
保存 subprocess_example1 工作流,设置全局参数 var1。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
在新的工作流中创建 sub_process 任务,使用 subprocess_example1 工作流作为子节点。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
创建一个 shell 任务作为 sub_process 任务的下游任务,并编写如下脚本:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
保存该工作流并运行,下游任务运行结果如下:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
虽然在 A 任务中输出 var1 和 var2 两个参数,但是工作流定义中只定义了 var1 的 OUT 变量,下游任务成功输出 var1,证明var1 参数参照预期的值在该工作流中传递。
|
||||||
|
|
||||||
|
#### Kubernetes 任务传递参数
|
||||||
|
|
||||||
|
在Kubernetes任务中不同的程序开发语言可能会采用不同的日志框架,DolphinScheduler为了兼容不同的日志框架,提供了一种通用的日志数据格式,即 `${(key=value)dsVal}`,用户可以在应用程序的终端日志中输出以格式为 `${(key=value)dsVal}` 结束的日志数据,key 为对应参数的 prop,value 为该参数的值。DolphinScheduler会捕捉输出日志中的 `${(key=value)dsVal}`来进行参数捕捉,从而传递到下游。
|
||||||
|
|
||||||
|
如下图所示:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
另外需要特别注意的是,并非总是可以收集pod日志,如果用户重定向日志输出流,我们既不能收集日志使用,也不能使用输出参数。
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
## 作用域
|
## 作用域
|
||||||
|
|
||||||
全局参数是指针对**整个工作流**的所有任务节点都有效的参数,在工作流定义页面配置。
|
全局参数在工作流定义页面配置。
|
||||||
|
|
||||||
|
方向是 IN 的变量是针对**整个工作流**的所有任务节点都有效的参数。
|
||||||
|
|
||||||
|
方向是 OUT 的变量作为该工作流的输出参数,传递到父工作流中对应 SubProcess 任务的下游任务。
|
||||||
|
|
||||||
## 使用方式
|
## 使用方式
|
||||||
|
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue