This is an automated email from the ASF dual-hosted git repository. zuston pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/auron.git
The following commit(s) were added to refs/heads/master by this push: new bd36edab [AURON-1139] Setup integration testing with Uniffle (#1222) bd36edab is described below commit bd36edab6134d69bdb6df4b0bc2cbf6f03d94dc9 Author: Fei Wang <fwan...@ebay.com> AuthorDate: Sun Aug 31 18:32:30 2025 -0700 [AURON-1139] Setup integration testing with Uniffle (#1222) --- .github/workflows/tpcds-reusable.yml | 77 ++++++++++++++++++++++++++++++++++-- .github/workflows/uniffle.yml | 59 +++++++++++++++++++++++++++ 2 files changed, 133 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tpcds-reusable.yml b/.github/workflows/tpcds-reusable.yml index e9d64329..d252be8b 100644 --- a/.github/workflows/tpcds-reusable.yml +++ b/.github/workflows/tpcds-reusable.yml @@ -42,6 +42,22 @@ on: required: false type: string default: '' + unifflever: + required: false + type: string + default: '' + uniffleurl: + required: false + type: string + default: '' + hadoopver: + required: false + type: string + default: '' + hadoopurl: + required: false + type: string + default: '' extrabuildopt: required: false type: string @@ -216,10 +232,10 @@ jobs: - name: Start Celeborn-${{ inputs.celebornver }} if: ${{ inputs.celebornver != '' && inputs.celebornurl != '' }} run: | - mkdir -p /tmp/celeborn/data && mkdir -p /tmp/celeborn/logs && \ + mkdir -p /tmp/rss/data && mkdir -p /tmp/rss/logs && \ cd celeborn-bin-${{ inputs.celebornver }} && \ - bash -c "echo -e 'CELEBORN_MASTER_MEMORY=4g\nCELEBORN_WORKER_MEMORY=4g\nCELEBORN_WORKER_OFFHEAP_MEMORY=8g\nCELEBORN_LOG_DIR=/tmp/celeborn/logs' > ./conf/celeborn-env.sh" && \ - bash -c "echo -e 'celeborn.worker.storage.dirs /tmp/celeborn\nceleborn.worker.storage.workingDir data\nceleborn.worker.commitFiles.threads 128\nceleborn.worker.sortPartition.threads 64' > ./conf/celeborn-defaults.conf" && \ + bash -c "echo -e 'CELEBORN_MASTER_MEMORY=4g\nCELEBORN_WORKER_MEMORY=4g\nCELEBORN_WORKER_OFFHEAP_MEMORY=8g\nCELEBORN_LOG_DIR=/tmp/rss/logs' > ./conf/celeborn-env.sh" && \ + bash -c "echo -e 'celeborn.worker.storage.dirs /tmp/rss\nceleborn.worker.storage.workingDir data\nceleborn.worker.commitFiles.threads 128\nceleborn.worker.sortPartition.threads 64' > ./conf/celeborn-defaults.conf" && \ bash ./sbin/start-master.sh && \ bash ./sbin/start-worker.sh @@ -229,6 +245,53 @@ jobs: ls -la celeborn-bin-${{ inputs.celebornver }}/spark cp celeborn-bin-${{ inputs.celebornver }}/spark/celeborn-client-spark-*_${{ inputs.scalaver }}-*.jar spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }}/jars/ + - uses: actions/cache@v4 + if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' }} + id: cache-uniffle-bin + with: + path: uniffle-bin-${{ inputs.unifflever }} + key: uniffle-bin-${{ inputs.unifflever }} + + - name: Setup Uniffle-${{ inputs.unifflever }} + id: setup-uniffle-bin + if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' && steps.cache-uniffle-bin.outputs.cache-hit != 'true' }} + run: | + wget -c ${{ inputs.uniffleurl }} && \ + mkdir -p uniffle-bin-${{ inputs.unifflever }} && \ + tar -xf ./apache-uniffle-${{ inputs.unifflever }}-incubating-bin.tar.gz -C uniffle-bin-${{ inputs.unifflever }} --strip-component=1 + + - uses: actions/cache@v4 + if: ${{ inputs.hadoopver != '' && inputs.hadoopurl != '' }} + id: cache-hadoop-bin + with: + path: hadoop-bin-${{ inputs.hadoopver }} + key: hadoop-bin-${{ inputs.hadoopver }} + + - name: Setup hadoop-${{ inputs.hadoopver }} + id: setup-hadoop-bin + if: ${{ inputs.hadoopver != '' && inputs.hadoopurl != '' && steps.cache-hadoop-bin.outputs.cache-hit != 'true' }} + run: | + wget -c ${{ inputs.hadoopurl }} && \ + mkdir -p hadoop-bin-${{ inputs.hadoopver }} && \ + tar -xf ./hadoop-${{ inputs.hadoopver }}.tar.gz -C hadoop-bin-${{ inputs.hadoopver }} --strip-component=1 && \ + ls -la hadoop-bin-${{ inputs.hadoopver }} + + - name: Start Uniffle-${{ inputs.unifflever }} + if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' }} + run: | + mkdir -p /tmp/rss/data && mkdir -p /tmp/rss/logs && \ + cd uniffle-bin-${{ inputs.unifflever }} && \ + bash -c "echo -e 'XMX_SIZE=16g\nHADOOP_HOME=../hadoop-bin-${{ inputs.hadoopver }}\nRSS_LOG_DIR=/tmp/rss/logs' > ./bin/rss-env.sh" && \ + bash -c "echo -e 'rss.coordinator.shuffle.nodes.max 1\nrss.rpc.server.port 19999' > ./conf/coordinator.conf" && \ + bash -c "echo -e 'rss.server.app.expired.withoutHeartbeat 7200000\nrss.server.heartbeat.delay 3000\nrss.rpc.server.port 19997\nrss.rpc.server.type GRPC_NETTY\nrss.jetty.http.port 19996\nrss.server.netty.port 19995\nrss.storage.basePath /tmp/rss/data\nrss.storage.type MEMORY_LOCALFILE\nrss.coordinator.quorum localhost:19999\nrss.server.flush.thread.alive 10\nrss.server.single.buffer.flush.threshold 64m' > ./conf/server.conf" && \ + bash ./bin/start-coordinator.sh && bash ./bin/start-shuffle-server.sh + + - name: Install Uniffle JAR + if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' }} + run: | + ls -la uniffle-bin-${{ inputs.unifflever }}/jars/client/spark3/ + cp uniffle-bin-${{ inputs.unifflever }}/jars/client/spark3/*.jar spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }}/jars/ + - name: Run run: | ls -la @@ -239,3 +302,11 @@ jobs: ${{ inputs.extrasparkconf }} \ --data-location dev/tpcds_1g \ --query-filter ${{ matrix.query }} + + - name: Upload RSS log + if: ${{ failure() && (inputs.celebornver != '' || inputs.unifflever != '') }} + uses: actions/upload-artifact@v4 + with: + name: rss-log-${{ inputs.extraidentifier }} + path: | + /tmp/rss/logs/* diff --git a/.github/workflows/uniffle.yml b/.github/workflows/uniffle.yml new file mode 100644 index 00000000..910ea080 --- /dev/null +++ b/.github/workflows/uniffle.yml @@ -0,0 +1,59 @@ +# +# 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. +# + +name: Uniffle + +on: + workflow_dispatch: + pull_request: + branches: + - master + - branch-* + +concurrency: + group: uniffle-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +jobs: + test-uniffle: + strategy: + fail-fast: false + matrix: + include: + - unifflever: "0.9.2" + hadoopver: "2.8.5" + uniffleprofile: "uniffle,uniffle-0.9" + uses: ./.github/workflows/tpcds-reusable.yml + name: Test Uniffle ${{ matrix.unifflever }} + with: + unifflever: ${{ matrix.unifflever }} + uniffleurl: https://archive.apache.org/dist/uniffle/${{ matrix.unifflever }}/apache-uniffle-${{ matrix.unifflever }}-incubating-bin.tar.gz + hadoopver: ${{ matrix.hadoopver }} + hadoopurl: https://archive.apache.org/dist/hadoop/common/hadoop-${{ matrix.hadoopver }}/hadoop-${{ matrix.hadoopver }}.tar.gz + extrabuildopt: -P${{ matrix.uniffleprofile }} -DuniffleVersion=${{ matrix.unifflever }} + extraidentifier: uniffle-${{ matrix.unifflever }} + sparkver: "spark-3.5" + sparkurl: "https://archive.apache.org/dist/spark/spark-3.5.6/spark-3.5.6-bin-hadoop3.tgz" + scalaver: "2.12" + extrasparkconf: >- + --conf spark.shuffle.manager=org.apache.spark.sql.execution.auron.shuffle.uniffle.AuronUniffleShuffleManager + --conf spark.serializer=org.apache.spark.serializer.KryoSerializer + --conf spark.rss.coordinator.quorum=localhost:19999 + --conf spark.rss.enabled=true + --conf spark.rss.storage.type=MEMORY_LOCALFILE + --conf spark.rss.client.type=GRPC_NETTY + queries: '["q1,q2,q3,q4,q5,q6,q7,q8,q9"]'