---
title: OmniShuffle Shuffle加速组件配置文件说明
description: "**表1 默认配置说明**"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0362.html
sourcePath: /source/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0362.html
indexId: e9d9be033826ccabbbf5ace8cbf0b5d035e90f1a0c20e54fa54af2b579e51e0978
---
# 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版本。如果打开，需要以下配置： Java 9及以上，在Java启动选项加上 \-Djdk.attach.allowAttachSelf=true 修改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 | 是否开启安全特性。 true：开启安全特性。 false：不开启安全特性。 安全配置项需要默认开启，关闭可能会有安全风险。 若此三项设置为false，后续项不需要再设置。 |
| ock.ucache.rpc.enableAuthorization | true | 是否开启安全特性。 true：开启安全特性。 false：不开启安全特性。 安全配置项需要默认开启，关闭可能会有安全风险。 若此三项设置为false，后续项不需要再设置。 |
| 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。 |
