Skip to main content

Uniffle Shuffle Server Guide

Deploy

This document will introduce how to deploy Uniffle shuffle servers.

Steps

  1. unzip package to RSS_HOME
  2. update RSS_HOME/bin/rss-env.sh, eg,
      JAVA_HOME=<java_home>
    HADOOP_HOME=<hadoop home>
    XMX_SIZE="80g"
  3. update RSS_HOME/conf/server.conf, eg,
      rss.rpc.server.port 19999
    rss.jetty.http.port 19998
    rss.rpc.executor.size 2000
    # it should be configed the same as in coordinator
    rss.storage.type MEMORY_LOCALFILE_HDFS
    rss.coordinator.quorum <coordinatorIp1>:19999,<coordinatorIp2>:19999
    # local storage path for shuffle server
    rss.storage.basePath /data1/rssdata,/data2/rssdata....
    # it's better to config thread num according to local disk num
    rss.server.flush.thread.alive 5
    rss.server.flush.threadPool.size 10
    rss.server.buffer.capacity 40g
    rss.server.read.buffer.capacity 20g
    rss.server.heartbeat.timeout 60000
    rss.server.heartbeat.interval 10000
    rss.rpc.message.max.size 1073741824
    rss.server.preAllocation.expired 120000
    rss.server.commit.timeout 600000
    rss.server.app.expired.withoutHeartbeat 120000
    # note: the default value of rss.server.flush.cold.storage.threshold.size is 64m
    # there will be no data written to DFS if set it as 100g even rss.storage.type=MEMORY_LOCALFILE_HDFS
    # please set proper value if DFS is used, eg, 64m, 128m.
    rss.server.flush.cold.storage.threshold.size 100g
  4. start Shuffle Server
     bash RSS_HOME/bin/start-shuffle-server.sh

Configuration

Property NameDefaultDescription
rss.coordinator.quorum-Coordinator quorum
rss.rpc.server.port-RPC port for Shuffle server
rss.jetty.http.port-Http port for Shuffle server
rss.server.buffer.capacity-Max memory of buffer manager for shuffle server
rss.server.memory.shuffle.highWaterMark.percentage75.0Threshold of spill data to storage, percentage of rss.server.buffer.capacity
rss.server.memory.shuffle.lowWaterMark.percentage25.0Threshold of keep data in memory, percentage of rss.server.buffer.capacity
rss.server.read.buffer.capacity-Max size of buffer for reading data
rss.server.heartbeat.interval10000Heartbeat interval to Coordinator (ms)
rss.server.flush.threadPool.size10Thread pool for flush data to file
rss.server.commit.timeout600000Timeout when commit shuffle data (ms)
rss.storage.type-Supports MEMORY_LOCALFILE, MEMORY_HDFS, MEMORY_LOCALFILE_HDFS
rss.server.flush.cold.storage.threshold.size64MThe threshold of data size for LOACALFILE and HDFS if MEMORY_LOCALFILE_HDFS is used
rss.server.tags-The comma-separated list of tags to indicate the shuffle server's attributes. It will be used as the assignment basis for the coordinator
rss.server.single.buffer.flush.enabledfalseWhether single buffer flush when size exceeded rss.server.single.buffer.flush.threshold
rss.server.single.buffer.flush.threshold64MThe threshold of single shuffle buffer flush
rss.server.disk.capacity-1Disk capacity that shuffle server can use. If it's negative, it will use the default disk whole space