OmniShuffle Shuffle加速组件配置文件说明

spark.conf

表1 默认配置说明

参数

取值范围和缺省值

取值范围和缺省值说明

spark.executor.extraClassPath

$OCK_HOME/jars/*:.

OmniShuffle Shuffle加速组件的JAR包存放路径,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

spark.driver.extraJavaOptions

-Djava.library.path=$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common/openssl:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common:$OCK_HOME/ock/ucache/24.0.0/linux-aarch64/lib/datakit:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/mf -Dlog4j.configuration=/usr/local/spark/conf/log4j.properties -XX:+UseParallelGC

传递给driver的JVM选项字符串,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

spark.executor.extraJavaOptions

-Djava.library.path=$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common/openssl:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/datakit:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/mf -Xms8g -XX:+UseParallelGC -XX:ParallelGCThreads=6 -XX:ErrorFile=/tmp/hs_err_pid%p.log

传递给Executor的JVM选项字符串,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

spark.driver.extraLibraryPath

$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common/openssl:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/datakit:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/mf:.

指定启动driver的JVM时使用的库路径,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

spark.executor.extraLibraryPath

$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common/openssl:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/common:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/datakit:$OCK_HOME/ucache/24.0.0/linux-aarch64/lib/mf:.

指定启动Executor的JVM时使用的库路径,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

spark.shuffle.manager

  • 取值:org.apache.spark.shuffle.ock.OCKShuffleManager/

    org.apache.spark.shuffle.ock.OCKRemoteShuffleManager/

  • 默认值:org.apache.spark.shuffle.ock.OCKShuffleManager

OCK Shuffle Manager的类路径。

spark.blacklist.enabled

  • 取值:true/false
  • 默认值:true

Spark自带参数,作业级应当设置为“true”以开启黑名单机制使能故障恢复。

spark.blacklist.application.fetchFailure.enabled

  • 取值:true/false
  • 默认值:true

Spark自带参数,作业级应当设置为“true”以开启FetchFailure拉黑机制使能故障恢复。

spark.files.fetchFailure.unRegisterOutputOnHost

  • 取值:true/false
  • 默认值:false

Spark自带参数,作业级应当设置为“true”以开启FetchFailure移除已有Map任务的输出使能故障恢复。

spark.yarn.blacklist.executor.launch.blacklisting.enabled

  • 取值:true/false
  • 默认值:false

Spark for Yarn自带参数,作业级应当设置为“true”以开启Yarn的节点黑名单机制。

spark.shuffle.service.enabled

  • 取值:true/false
  • 默认值:false

Spark自带参数,作业级应当设置为“false”以防止开启Spark External Shuffle Service。

spark.shuffle.isMapSideCombineExt

  • 取值:true/false
  • 默认值:true

是否启用使用聚合器聚合数据。

spark.shuffle.ock.home

  • 取值:OmniShuffle Shuffle加速组件 home文件夹位置,如/home/ockadmin/opt/ock
  • 默认值:/home/ockadmin/opt/ock

OmniShuffle Shuffle加速组件 home文件夹位置。

spark.shuffle.ock.version

  • 取值:OmniShuffle Shuffle加速组件支持版本号,仅支持21.0.0、22.0.0、23.0.0、24.0.0
  • 默认值:24.0.0

OmniShuffle Shuffle加速组件的版本号。

spark.shuffle.ock.binaryType

  • 取值:OmniShuffle Shuffle加速组件软件架构类型,仅支持linux-aarch64, linux-x86_64
  • 默认值:linux-aarch64

OmniShuffle Shuffle加速组件软件架构类型。

spark.shuffle.ock.deploy.isStandalone

  • 取值:true/false
  • 默认值:false

spark集群是否是Standlone架构。

spark.shuffle.ock.mapTaskOutput.minCapacityTotal

41943040

mapTask输出buffer的最小值,单位:byte。

spark.shuffle.ock.mapTaskOutput.maxCapacityTotal

134217728

mapTask输出buffer的最大值,单位:byte。

spark.shuffle.ock.mfLocalMemCap

1073741824

SDK侧mf client启动的大小。

spark.shuffle.ock.isIsolated

  • 取值:true/false
  • 默认值:true

是否开启OmniShuffle Shuffle加速组件的APP资源隔离功能,配合OmniShuffle Shuffle加速组件 Server端参数使用。

spark.shuffle.ock.scheduler.excludeUnavailableNodes

  • 取值:true/false
  • 默认值:true

是否开启Shuffle Manager的失效节点拉黑机制。

spark.shuffle.ock.removeShuffleDataAfterJobFinished

  • 取值:true/false
  • 默认值:false

(调优项)是否在一个Job完成后释放对应的Shuffle文件,在绝大多数场景下应设置为false,仅当用户确认不存在跨Job的Shuffle数据复用时可设置为true。

spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version

2

Hadoop原生配置,用于性能调优,减少Shuffle输出文件耗时。

spark.shuffle.ock.aggregateFlags

  • 取值:true/false
  • 默认值:true

是否进行汇聚。

spark.broadcast.ock.manager

  • 取值:true/false
  • 默认值:false

是否开启OmniShuffle Shuffle加速组件 Broadcast特性。

spark.broadcast.ock.robustness

  • 取值:true/false
  • 默认值:false

OmniShuffle Shuffle加速组件 Broadcast可靠性开关。

  • true:广播变量初始化时会远程写到两个节点。
  • false:仅会写到一个节点。

spark.broadcast.ock.ockThresholdInMb

缺省值:100

广播变量类型阈值(MB)。当广播变量大小超过该阈值且spark.broadcast.ock.manager=true,设置为OmniShuffle Shuffle加速组件 Broadcast变量;否则设置为原生Broadcast变量。

spark.sql.adaptive.enabled

  • 取值:true/false
  • 默认值:false

Spark原生AQE的功能开关,当前OmniShuffle Shuffle加速组件 BoostTuning仅使能AQE生效的Spark SQL作业,该配置项应开启为true。

spark.ock.decimal.optimize

  • 取值:true/false
  • 默认值:false

(调优项)OmniShuffle Shuffle加速组件针对Decimal类型数据计算的优化,绝大多数场景下不修改,本调优项只支持Spark 3.1.1版本。如果打开,需要以下配置:

  1. Java 9及以上,在Java启动选项加上 -Djdk.attach.allowAttachSelf=true
  2. 修改spark.conf文件,增加spark.executor.extraClassPath=${JAVA_HOME}/lib/*

spark.shuffle.ock.rss.stopRepStageComplete

  • 取值:true/false
  • 默认值:false

stage结束后是否停止本stage备份。

spark.shuffle.ock.rss.write.sendBuffer

24

本地缓存的sendbuffer数量。

spark.shuffle.ock.rss.lb.strategy

  • 取值:BalancedByScanNodeStrategy、BalancedByNodeUsageStrategy、BalancedByExtendStrategy
  • 默认值:BalancedByScanNodeStrategy

设置负载均衡策略。

  • BalancedByScanNodeStrategy 均衡打散数据到所有RSS节点。
  • BalancedByNodeUsageStrategy 根据内存大小区分RSS节点优先级,并均衡打散数据到所有RSS节点。
  • BalancedByExtendStrategy 动态扩展数据到所有RSS节点。

spark.shuffle.ock.rss.lb.initRSSNum

  • 取值:1~N,N为集群RSS节点数。
  • 默认值:1

在负载均衡策略为BalancedByExtendStrategy时,该配置项生效。

spark.shuffle.ock.rss.enableReplication

  • 取值:false、true
  • 默认值:false

副本模式开关,不能和性能模式同时开启。

spark.shuffle.ock.rss.syncRep

  • 取值:false、true
  • 默认值:false

同步/异步副本模式开关,需开启副本模式。

spark.shuffle.ock.isPrefetchMode

  • 取值:false、true
  • 默认值:false

性能模式开关,不能和副本模式同时开启。

spark.shuffle.ock.mode

  • 取值:rss/ess
  • 默认值:ess

OmniShuffle Shuffle加速组件部署模式

mf.conf

表2 配置说明

参数

参考值

参考值说明

ock.mf.ip_mask

172.17.0.0~172.17.0.125

修改为集群配置mf节点的业务IP地址范围。此配置不包含管理节点IP地址。

ock.mf.port

9999

  • mf端口号,可保持默认。
  • 需确保此端口以及此端口+1未被占用。

ock.mf.protocol

rc

  • mf protocol。
  • 有IB网卡(RDMA)且可用时选rc,否则修改为tcp。
  • 需确保与ock.conf中的ock.ucache.rpc.transport.protocol一致。

ock.mf.mem_size

53687091200

  • mf内存需不少于1G,具体需要根据实际Shuffle量设置内存值,目前默认值即为50G,RSS模式建议配置250GB。

ock.mf.mempoolsize

268,435,456

client端本地内存池大小,单位:Byte。

ock.mf.rpc.thread.num

128

mf之间的跨节点消息处理的线程池配置的线程数量,取值范围[1,128]

ock.mf.water_mark_timer

50

融合场景下内存水位扫描周期,单位:ms。保持默认值。

ock.mf.rpc.timeout

600000

  • mf之间消息超时时间限制,单位:ms。
  • 保持默认10min。

ock.mf.rpc.rndv_rtr_timeout

30000

ucx rndv通信时,发送方从rts状态到rtr状态之间的超时时间,单位:ms

ock.ucache.rpc.enableAuthentication

true

是否开启安全特性。

  • true:开启安全特性。
  • false:不开启安全特性。

安全配置项需要默认开启,关闭可能会有安全风险。

若此三项设置为false,后续项不需要再设置。

ock.ucache.rpc.enableTLS

true

ock.ucache.rpc.enableAuthorization

true

ock.ucache.rpc.tls.ca.cert.path

$OCK_HOME/security/tls/server/ca.cert.pem

证书分发agent_node_list中节点生成的OmniShuffle Shuffle加速组件使用的ca.cert.pem文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.tls.cert.path

$OCK_HOME/security/tls/server/server.cert.pem

证书分发agent_node_list中节点生成的OmniShuffle Shuffle加速组件使用的server.cert.pem文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.tls.key.path

$OCK_HOME/security/tls/server/server.private.key.pem

证书分发agent_node_list中节点生成的OmniShuffle Shuffle加速组件使用的server.private.key.pem文件路径。$OCK_HOME为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.tls.key.pass.path

$OCK_HOME/security/tls/server/server.keypass.key

证书分发agent_node_list中节点生成的OmniShuffle Shuffle加速组件使用的server.keypass.key文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径,需按实际配置。

ock.ucache.rpc.tls.crl.path

-

OmniShuffle Shuffle加速组件用户吊销列表。若无用户吊销列表的路径,则删除该参数。

ock.ucache.rpc.auth.type

kerberos

身份认证协议,目前使用kerberos协议。

ock.ucache.rpc.auth.kerb.client.keytab

/home/Sparkadmin/huawei/ock/security/kdc/krb5-client_en.keytab

  • kdc服务器分发给各节点提交Spark任务用户使用的krb5-client.keytab文件路径。修改“/home/Sparkadmin”为实际的安装路径。

ock.ucache.rpc.auth.kerb.server.keytab

$OCK_HOME/security/kdc/krb5-server_en.keytab

  • KDC服务器分发给各节点OmniShuffle Shuffle加速组件使用的krb5-server.keytab文件路径。
  • “$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.auth.domain

EXAMPLE.COM

修改为KDC服务器指定的域名。

ock.ucache.rpc.auth.server.principle.name

ock_server

OmniShuffle Shuffle加速组件 Server端的principal名字 ,目前设置为ock_server。

ock.ucache.rpc.auth.client.principle.name

ock_client

OmniShuffle Shuffle加速组件 Client端的principal名字,目前设置为ock_client。

ock.ucache.rpc.author.type

whitelist

默认设置为whitelist。

ock.ucache.rpc.author.file.path

$OCK_HOME/security/authorization/whitelist

  • KDC配置生成的whitelist所在的路径。
  • $OCK_HOME为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.kmc.ksf.primary.path

$OCK_HOME/security/pmt/master/ksfa

OmniShuffle Shuffle加速组件用户kmc_tool生成的kmc.primary.ks文件。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.kmc.ksf.standby.path

$OCK_HOME/security/pmt/standby/ksfb

ock用户kmc_tool生成的kmc.standby.ks文件。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.kmc.ksf.backup.path

$OCK_HOME/security/pmt/kmcbakup

ock用户kmc.primary.ks文件和kmc.standby.ks文件的备份位置。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。用户可以自行备份,可以改为自己的备份位置。

ock.ucache.sdk.kmc.ksf.primary.path

/home/Sparkadmin/huawei/ock/security/pmt/master/ksfa

提交Spark任务用户kmc_tool生成的kmc.primary.ks文件。修改“/home/Sparkadmin”为实际的安装路径。

ock.ucache.sdk.kmc.ksf.standby.path

/home/Sparkadmin/huawei/ock/security/pmt/standby/ksfb

提交Spark任务用户kmc_tool生成的kmc.standby.ks文件。修改“/home/Sparkadmin”为实际的安装路径。

ock.ucache.sdk.kmc.ksf.backup.path

/home/Sparkadmin/huawei/ock/security/pmt/kmcbakup

提交Spark任务用户kmc.primary.ks文件和kmc.standby.ks文件的备份位置。修改“/home/Sparkadmin”为实际的安装路径。用户可以自行备份,可以改为自己的备份位置。

ock.ucache.rpc.tls.sdk.cert.path

${SPARKADMIN_HOME}/security/certs/server.cert.pem

证书分发agent_node_list中节点生成的提交Spark任务用户使用的agent.private.key.pem文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置

ock.ucache.rpc.tls.sdk.key.path

${SPARKADMIN_HOME}/security/certs/server.private.key.pem

证书分发agent_node_list中节点生成的提交Spark任务用户使用的server.private.key.pem文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置

ock.ucache.rpc.tls.sdk.key.pass.path

${SPARKADMIN_HOME}/security/certs/server.keypass.key

证书分发agent_node_list中节点生成的提交Spark任务用户使用的server.keypass.key文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置

ock.mf.capacity.report.period

取值范围:[100, 180000]

mf刷新ZooKeeper记录的最新容量情况周期,单位:ms。

ock.ucache.server.isIsolated

true

是否开启多租户检查特性,默认开启,保持默认值即可。

  • true:开启
  • false:不开启

ock.ucache.worker.thread.groups

1,1

配置1,1时可在TCP场景下,mfserver间通过多条链路建链,提升性能, 默认关闭,无需配置。

ock.ucache.sdk.thread.groups

1

配置>=1时,ockclient和mfserver间通过多条链路建链,提升性能, 默认关闭,无需配置。

ock.ucache.rpc.client.auth.timeout

[15000, 180000]

RPC建链超时时间,单位:ms。

ock.ucache.rpc.tls.sdk.crl.path

-

提交Spark任务用户吊销列表。若无用户吊销列表的路径,则删除该参数。

ock.ucache.rpc.tls.sdk.ca.cert.path

/home/Sparkadmin/huawei/ock/security/tls/ca.cert.pem

证书分发agent_node_list中节点生成的提交Spark任务用户使用的ca.cert.pem文件路径。修改“/home/Sparkadmin”为实际的安装路径。

ock.hswap.path

${OCK_HOME}/hswappath

换盘路径。

ock.hswap.queue.cap.per.path

65535

每个路径下的换盘队列容量。

ock.hswap.task.pool.size

65535

线程池大小。

ock.hswap.max.aio.count.per.thread

65535

每个线程的最大同时处理aio事件的计数。

ock.hswap.media.type

0

盘类型,目前只支持一种类型,0表示NVMe。

ock.conf

以下带timeout字样的参数,除个别已标出单位为ms的参数以外,其余参数在网络状况差时可适当调大。端口配置范围为3000~65535。

表3 配置说明

参数

参考值

参考值说明

ock.log.dir

${OCK_HOME}/logs/

OmniShuffle Shuffle加速组件运行日志目录,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.workers.dir

${OCK_HOME}/conf/workers

运行的工作节点主机名目录,一般与Hadoop的工作节点目录相同,“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.log.level

INFO

运行日志级别,保持默认。

ock.log.fileSize

20

单个运行日志文件大小,单位:MB。取值范围:2~20

ock.log.rotation.file.num

20

运行日志绕接的数量,超过该数量的日志会被删除。取值范围:1~20

ock.ucache.enabled

true

Shuffle服务是否可用。

ock.ucache.replication.service.thread.num

10

副本任务发送线程数。

ock.ucache.replication.thread.num

16

副本任务执行线程数。

ock.ucache.rpc.shuffle_driver.worker.thread.cpuset

-

diver通信线程绑核CPU。

ock.ucache.rpc.shuffle_driver.worker.thread.group

8

driver rpc处理线程数。

ock.ucache.rpc.shuffle_server.worker.thread.cpuset

-

RSS通信线程绑核CPU。

ock.ucache.rpc.shuffle_server.timeout

60000

Shuffle Server RPC超时时间,单位:ms。

ock.ucache.rpc.shuffle_meta.timeout

60000

元数据服务RPC超时时间,单位:ms。

ock.ucache.rpc.client.auth.timeout

60000

节点的RPC的建链超时时间,单位:ms。

ock.ucache.rpc.local_blob.get.timeout

60000

get LocalBlob单独的RPC超时时间,优先级高于默认时间,单位:ms。

ock.ucache.rpc.local_blob.commit.timeout

60000

commit LocalBlob单独的RPC超时时间,优先级高于默认时间,单位:ms。

ock.ucache.rpc.transport.tcp.port.range

60000~61000

TCP网络协议需要额外占用的端口范围。

ock.ucache.rpc.transport.protocol

rc

有IB网卡(RDMA)且可用时选“rc”,否则修改为“tcp”

ock.ucache.rpc.transport.devices

所使用的网卡设备名称,当环境存在多网卡运行时需要指定所使用的网卡,否则节点间通信可能失败。

ock.ucache.shuffle.profile.level

0

性能统计的开关与等级。

ock.ucx.tcp.keepintvl

120s

TCP连接的存续时间,单位:s。在网络状况极差时可以调大。

ock.ucache.rpc.shuffle_server.port

3891

Shuffle Server的服务端口,用户可以自己指定,在端口配置范围内即可。

ock.ucache.server.max_local_blob_capacity

25769803776

最大local_local容量,用户可自行设置大于等于24GB,小于MF内存容量的50%。

目前参考值为24GB,单位:bit。

ock.ucache.server.data.isolation

true

是否开启OmniShuffle Shuffle加速组件的APP资源隔离功能,配置Client端参数使用。

ock.zookeeper.server.url

127.0.0.1:2181

配置ZooKeeper Server IP地址与端口。

  • 仅开启Kerberos功能则端口号配成“2181”
  • 开启TLS+Kerberos功能则端口配成“2281”

ock.zookeeper.session.timeout

30000

连接ZooKeeper会话超时时间。

ock.zookeeper.connect.timeout

30

ZooKeeper尝试连接的超时时间,单位:s。节点数量多,连接延迟大的时候,可以把参数改大。

ock.ucache.server.swap.threshold.higher_watermark

60

将只读的ShuffleBlob向外交换的内存水位线,范围0~100。不建议修改。

ock.ucache.server.swap.threshold.lower_watermark

20

将只有外部存储的ShuffleBlob向内存池交换的内存水位线,范围0~100。不建议修改。

ock.ucache.server.swap.threshold.free_water_mater

75

mf内存使用率超过设置值后,开始准备释放已经交换出去的ShuffleBlob占用的内存,范围为0~100。不建议修改。

ock.ucache.server.shuffle.max.receive.buffer.pool.size

0

最大ReceiveBuffer数量,最大值为20000。配置该值为0时会根据mf剩余内存容量自动计算。

ock.ucache.server.swap.path

-

交换到外部存储的文件目录,多个目录用逗号分隔。必填字段,否则无法启动。建议权限设置为750。

ock.ucache.rpc.enableAuthentication

true

是否开启安全特性。

  • true:开启安全特性
  • false:不开启安全特性

ock.ucache.rpc.enableTLS

true

是否开启传输加密。

ock.ucache.rpc.enableAuthorization

true

是否开启登录认证。

ock.ucache.rpc.tls.ca.cert.path

${OCK_HOME}/security/tls/server/ca.cert.pem

证书分发时agent_node_list中节点生成的ock用户使用的ca.cert.pem文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置

ock.ucache.rpc.tls.cert.path

${OCK_HOME}/security/tls/server/server.private.key.pem

证书分发agent_node_list中节点生成的ock用户使用的server.private.key.pem文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置

ock.ucache.rpc.tls.key.path

${OCK_HOME}/security/tls/server/server.cert.pem

证书分发agent_node_list中节点生成的ock用户使用的agent.private.key.pem文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.tls.key.pass.path

${OCK_HOME}/security/tls/server/server.keypass.key

证书分发agent_node_list中节点生成的ock用户使用的server.keypass.key文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.tls.crl.path

-

ock用户使用的吊销列表。若无用户吊销列表的路径,可以为空。

ock.ucache.rpc.tls.driver.key.path

${SPARKADMIN_HOME}/security/certs/server.private.key.pem

证书分发agent_node_list中节点生成的提交Spark任务用户使用的server.private.key.pem文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置

ock.ucache.rpc.tls.driver.cert.path

${SPARKADMIN_HOME}/security/certs/server.cert.pem

证书分发agent_node_list中节点生成的提交Spark任务用户使用的agent.private.key.pem文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置

ock.ucache.rpc.tls.driver.key.pass.path

${SPARKADMIN_HOME}/security/certs/server.keypass.key

证书分发agent_node_list中节点生成的提交Spark任务用户使用的server.keypass.key文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置

ock.ucache.rpc.auth.type

kerberos

身份认证协议,目前使用Kerberos协议。

ock.ucache.rpc.auth.kerb.client.keytab

${SPARKADMIN_HOME}/security/kdc/krb5-client_en.keytab

KDC服务器分发给各节点提交Spark任务用户使用的krb5-client.keytab文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置。

ock.ucache.rpc.auth.kerb.server.keytab

${OCK_HOME}/security/kdc/krb5-server_en.keytab

  • KDC服务器分发给各节点ock用户使用的krb5-server.keytab文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.auth.driver.kerb.server.keytab

${SPARKADMIN_HOME}/security/kdc/krb5-server_en.keytab

KDC服务器分发给各节点提交Spark任务用户使用的krb5-server.keytab文件路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置。

ock.ucache.rpc.auth.domain

EXAMPLE.COM

KDC服务器指定的域名。

ock.ucache.rpc.auth.server.principle.name

ock_server

OmniShuffle Shuffle加速组件 Server端的principal名字 ,目前设置为ock_server。

ock.ucache.rpc.auth.client.principle.name

ock_client

OmniShuffle Shuffle加速组件 Client的principal名称,目前设置为ock_client。

ock.ucache.rpc.auth.meta.principle.mapping

127.0.0.1:hostname

与ock.ucache.meta.node_lists中IP地址一致,多个之间以“,”隔开,比如127.0.0.1:hostname1,127.0.0.2:hostname2。

ock.ucache.rpc.auth.driver.principle.mapping

127.0.0.1:hostname

driver所在的节点ip和hostname。一般为管理节点。

ock.ucache.rpc.author.type

whitelist

默认设置为whitelist。

ock.ucache.rpc.author.file.path

${OCK_HOME}/security/authorization/whitelist

KDC配置生成的whitelist所在的路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.author.driver.file.path

${SPARKADMIN_HOME}/security/authorization/whitelist

KDC配置生成的whitelist所在的路径。“$SPARKADMIN_HOME”为Spark任务用户安全文件放置路径需按实际配置。

ock.daemon.expireChecker.period

86400

安全证书检查周期。单位:s。

ock.ucache.kmc.ksf.primary.path

${OCK_HOME}/security/pmt/master/ksfa

ock用户kmc_tool生成的kmc.primary.ks文件。“${OCK_HOME}”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.kmc.ksf.standby.path

${OCK_HOME}/security/pmt/standby/ksfb

ock用户kmc_tool生成的kmc.standby.ks文件。“${OCK_HOME}”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.kmc.ksf.backup.path

${OCK_HOME}/security/pmt/kmcbakup

ock用户kmc.primary.ks文件和kmc.standby.ks文件的备份位置。“${OCK_HOME}”为OmniShuffle Shuffle加速组件安装路径需按实际配置。用户可以自行备份,可以改为自己的备份位置。

ock.zookeeper.security.principle.name

zookeeper

配置Kerberos认证server端principle名,代表principle的第1部分。

ock.zookeeper.security.principle.hostname

server

配置Kerberos认证ZooKeeper Server端principle名,代表principle的第2部分。

ock.zookeeper.security.strategy

GSSAPI

配置sasl支持的Kerberos认证机制,保持默认值GSSAPI。

ock.zookeeper.security.enable

true

是否开启ZooKeeper加密。

  • true:开启ZooKeeper加密,后续跟ZooKeeper相关的安全配置参数均需要配置。
  • false:关闭ZooKeeper加密。

ock.zookeeper.security.certs

/home/ockadmin/opt/ock/security/tls/server.crt.pem,/home/ockadmin/opt/ock/security/tls/client.crt.pem,***

开启TLS+Kerberos功能时ock用户配置TLS所需的证书,包括server.crt.pem,client.crt.pem,client.pem,以及用kmc加密的pem证书口令4部分。仅开启TLS功能则赋值为“false”

ock.zookeeper.security.client.principle

zkcli/server@EXAMPLE.COM

配置ock用户Kerberos认证ZooKeeper Client端principle(server为节点hostname,EXAMPLE.COM为KDC设置的域名)。

ock.zookeeper.security.client.keytab

${OCK_HOME}/security/kdc/krb5-server_en.keytab

配置ock用户Kerberos认证ZooKeeper Client端keytab路径。“${OCK_HOME}”为OmniShuffle Shuffle加速组件安装路径需按实际配置

ock.ucache.broadcast.variable.create.timeout

600000

创建广播变量的超时时间,单位:ms。 -1表示不超时。

ock.ucache.broadcast.variable.fetch.timeout

600000

拉取广播变量的超时时间,单位:ms。-1表示不超时。

ock.ucache.broadcast.bt.percent

10

广播变量拉取过程中,BT server占集群节点数的百分比。取值范围:1~100。

ock.ucache.rpc.transport.ipfilter

-

根据节点所在网段选择通信设备名称,例如192.168.100.194/24<,192.168.200.194/24>,支持英文逗号分割配置多个网段。可通过ip a查看网段信息。最好每个节点都统一配置。

ock.ucache.rpc.transport.devices.path

/sys/class/infiniband/

rc网卡相关信息所在目录,一般采用默认值,不需要配置。

ock.ucache.rpc.openssl.path

${OCK_HOME}/ucache/24.0.0/linux-aarch64/lib/common/openssl/libssl.so

OmniShuffle Shuffle加速组件所依赖的openssl so加载路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.crypto.path

${OCK_HOME}/ucache/24.0.0/linux-aarch64/lib/common/openssl/libcrypto.so

OmniShuffle Shuffle加速组件所依赖的crypto so加载路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock.ucache.rpc.tls.sdk.ca.cert.path

/home/Sparkadmin/huawei/ock/security/tls/ca.cert.pem

证书分发时agent_node_list中节点生成的提交Spark任务用户使用的ca.cert.pem文件路径。修改“/home/Sparkadmin”为实际的安装路径

ock.ucache.rpc.tls.sdk.crl.path

-

提交Spark任务用户使用的吊销列表。若没有用户吊销列表的路径,则可以为空。

ock.ucache.rss.bm.throttling.percent

98

内存占用达到设置百分比后开始限流。

ock.ucache.rss.queue.size

100000

RSS处理队列的长度。

ock.ucache.rss.queue.throttling.size

3000

聚合队列达配置项时开始限流。

ock.ucache.sdk.kmc.ksf.primary.path

/home/Sparkadmin/huawei/ock/security/pmt/master/ksfa

提交Spark任务用户kmc_tool生成的kmc.primary.ks文件。修改/“home/Sparkadmin”为实际的安装路径。

ock.ucache.sdk.kmc.ksf.standby.path

/home/Sparkadmin/huawei/ock/security/pmt/standby/ksfb

提交Spark任务用户kmc_tool生成的kmc.standby.ks文件。修改“/home/Sparkadmin”为实际的安装路径。

ock.ucache.sdk.kmc.ksf.backup.path

/home/Sparkadmin/huawei/ock/security/pmt/kmcbakup

提交Spark任务用户kmc.primary.ks文件和kmc.standby.ks文件的备份位置。修改“/home/Sparkadmin”为实际的安装路径。用户可以自行备份,可以改为自己的备份位置。

ock.zookeeper.sdk.security.certs

/home/Sparkadmin/huawei/ock/security/tls/server.crt.pem,/home/Sparkadmin/huawei/ock/security/tls/client.crt.pem,/home/Sparkadmin/huawei/ock/security/tls/client.pem,***

开启TLS+Kerberos功能时提交Spark任务用户配置TLS所需的证书,包括server.crt.pem,client.crt.pem,client.pem,以及用kmc加密的pem证书口令4部分。仅开启TLS功能则赋值为“false”

ock.zookeeper.sdk.security.client.principle

zkcli/server@EXAMPLE.COM

配置提交Spark任务用户Kerberos认证ZooKeeper Client端principle(server为节点hostname,EXAMPLE.COM为KDC设置的域名)。

ock.zookeeper.sdk.security.client.keytab

/home/Sparkadmin/huawei/ock/security/kdc/krb5-client_en.keytab

配置提交Spark任务用户Kerberos认证ZooKeeper Client端keytab路径。

ock.daemon.expireChecker.lead

-

证书到期提醒,不配置默认到期前7天,配置范围7~180。

ock.ucache.server.aggregator.core.thread.num

4

聚合核心线程数,配置范围1至设备最大核数。

ock.ucache.rpc.shuffle_server.worker.thread.group

3,1

建议配置为计算节点数,RSS节点数。

ock.ucache.master.ip

IP_ADDRESS

driver节点IP地址。

ock.ucache.rpc.check_task_finish.timeout

120000

聚合任务完成超时时间。默认值120000,单位ms。

ock.ucache.rpc.conn.wait.timeout

400

RSS节点连接超时时间,默认值400,单位ms.

ock-start-ockd-by-yarn.sh

表4 配置说明

参数

参考值

参考值说明

retry_times

5

Yarn尝试启动OCKD的进程次数。

interval_time

150

Yarn尝试启动OCKD进程间隔时间,单位:s。

forever_interval_time

600

尝试retry_times次后依然没启动OCKD进程,则每隔forever_interval_time(单位:s)继续尝试启动OCKD进程。

agent_node_list

文件内容格式如下:

IPaddress 运维账号

当有多个节点时,每行写一个IP地址与运维账号,所有节点信息均需写入。

文件内容如下所示。
1.1.1.1 运维用户
1.1.1.3 运维用户
1.1.1.5 运维用户
1.1.1.7 运维用户

CA_node_list

文件内容格式如下:

IPaddress 运维账号

当有多个节点时,每行写一个IP地址与运维账号,仅写入管理节点的信息。

文件内容如下所示。
1.1.1.9 BigDataAdmin

ock-launch-cluster.sh

表5 配置说明

参数

参考值

参考值说明

ock_vcore

15

OmniShuffle Shuffle加速组件占用的CPU数目。

ock_memory

61440

OmniShuffle Shuffle加速组件占用的内存数目,取mf内存的110%容量和mf内存加上10GB两者之间的最大值,包含自身运行内存。单位:MB。

master_vcore

5

launch server占用的CPU数目。

master_memory

10240

launch server占用的内存数目,单位:MB。

queue

OmniShuffle Shuffle加速组件所在Yarn队列。

ock_master_partition_label

RSS

launch server所在的Yarn分区标签。

need_kerberos

任务提交前,是否需要Kerberos认证。

kerberos_conf

Kerberos认证krb5.conf配置文件路径。“need_kerberos”“true”时生效。

kerberos_user

Kerberos认证用户名。“need_kerberos”“true”时生效。

kerberos_key_table

Kerberos认证用户名对应keytable文件路径。“need_kerberos”“true”时生效。

local_dir

$(cd "$(dirname $0)"||exit 0; pwd)

当前路径。

ock_home

$(cd "$(dirname $0)"/../../../..||exit 0; pwd)

OmniShuffle Shuffle加速组件部署路径。

ock_version_dir

$(cd "$(dirname $0)"/../..||exit 0; pwd)

OmniShuffle Shuffle加速组件版本路径。

ock_version

"${ock_version_dir##*/}"

OmniShuffle Shuffle加速组件版本号。

ock_run_shell_path

"${local_dir}/ock-start-ockd-by-yarn.sh"

Yarn启动OmniShuffle Shuffle加速组件的脚本路径。

ock_nodes_list_path

"${OCK_HOME}/conf/ock_node_list"

OmniShuffle Shuffle加速组件所在节点列表配置文件路径。

client_jar_path

"${OCK_HOME}/jars/ock-launch-cluster-${ock_version}.jar"

Yarn启动OmniShuffle Shuffle加速组件的JAR文件路径。

log_path

"${OCK_HOME}/logs/ock-launch-cluster.log"

Yarn启动OmniShuffle Shuffle加速组件的日志文件路径。

appid_path

"${OCK_HOME}/work/yarn-appids/yarn-ock.appid"

Yarn启动OmniShuffle Shuffle加速组件的app id文件路径。

ock-stop-cluster.sh

表6 配置说明

参数

参考值

参考值说明

ock_home

"$(cd "$(dirname $0)"/../../../..||exit ${EXT}; pwd)"

OmniShuffle Shuffle加速组件部署路径。

appid_path

"${OCK_HOME}/work/yarn-appids/yarn-ock.appid"

Yarn关停OmniShuffle Shuffle加速组件的app id文件路径。

log_path

"${OCK_HOME}/logs/ock-stop-cluster.log"

Yarn关停OmniShuffle Shuffle加速组件的日志文件路径。“$OCK_HOME”为OmniShuffle Shuffle加速组件安装路径需按实际配置。

ock_id

$(cat ${appid_path}|grep -Eo "application_[0-9]+_[0-9]+")

Yarn中OCK的application_id。