---
title: OmniShuffle Shuffle加速配置文件说明
description: "**表1 默认配置说明**"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0182.html
sourcePath: /source/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0182.html
indexId: 5e7c8f29b67e1af52727c661c22a31fcd0c7ec49f7ad9328aa211f95f7f8ac5078
---
# OmniShuffle Shuffle加速配置文件说明

#### spark.conf


**表1 默认配置说明**

| 参数 | 取值范围和缺省值 | 取值范围和缺省值说明 |
| --- | --- | --- |
| spark.executor.extraClassPath | $OCK\_HOME/jars/\*:. | OmniShuffle的JAR包存放路径，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| spark.driver.extraClassPath | $OCK\_HOME/jars/\*:. | OmniShuffle的JAR包存放路径，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| spark.driver.extraJavaOptions | \-Djava.library.path=$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/openssl:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx/ucx:$OCK\_HOME/ock/ucache/23.0.0/linux\-aarch64/lib/datakit:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/mf \-Dlog4j.configuration=/usr/local/spark/conf/log4j.properties \-Xms8g \-XX:+UseParallelGC | 传递给driver的JVM选项字符串，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| spark.executor.extraJavaOptions | \-Djava.library.path=$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/openssl:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/datakit:$OCK\_HOME/ucache/23.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安装路径需按实际配置。 |
| spark.driver.extraLibraryPath | $OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/openssl:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/datakit:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/mf:. | 指定启动driver的JVM时使用的库路径，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| spark.executor.extraLibraryPath | $OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/openssl:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/common/ucx/ucx:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/datakit:$OCK\_HOME/ucache/23.0.0/linux\-aarch64/lib/mf:. | 指定启动Executor的JVM时使用的库路径，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| spark.shuffle.manager | 取值：org.apache.spark.shuffle.ock.OCKShuffleManager/ OckColumnarShuffleManager 默认值：org.apache.spark.shuffle.ock.OCKShuffleManager 说明： 当设置为OckColumnarShuffleManager时，需要先安装OmniOperator，安装方式请参见《OmniRuntime 特性指南》中“安装算子加速特性(https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/bds/kunpengbds\_omniruntime\_20\_0040.html)”章节。 当设置为OckColumnarShuffleManager时，需要将软件包ock\-omniop\-shuffle\-manager\-23.0.0\-for\-spark\-3.1.jar放到“$OCK\_HOME/jars”目录下，下载链接为：下载链接(https://gitee.com/kunpengcompute/boostkit\-bigdata/releases/download/v1.4.0/boostkit\-omniop\-spark\-3.1.1\-1.1.0\-aarch64.zip)。 | OCK Shuffle Manager的类路径。 |
| spark.blacklist.enabled | 取值：true/false 默认值：false | Spark自带参数，作业级应当设置为“true”以开启黑名单机制使能故障恢复。 |
| spark.blacklist.application.fetchFailure.enabled | 取值：true/false 默认值：false | 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.ock.home | 取值：OmniShuffle home文件夹位置，如/home/ockadmin/opt/ock 默认值：/home/ockadmin/opt/ock | OmniShuffle home文件夹位置。 |
| spark.shuffle.ock.version | 取值：OmniShuffle支持版本号，仅支持21.0.0、22.0.0、23.0.0 默认值：23.0.0 | OmniShuffle的版本号。 |
| spark.shuffle.ock.binaryType | 取值：OmniShuffle软件架构类型，仅支持linux\-aarch64, linux\-x86\_64 默认值：linux\-aarch64 | OmniShuffle软件架构类型。 |
| spark.shuffle.ock.isIsolated | 取值：true/false 默认值：true | 是否开启OmniShuffle的APP资源隔离功能，配合OmniShuffle 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 BroadCast特性。 |
| spark.broadcast.ock.robustness | 取值：true/false 默认值：false | OmniShuffle BroadCast可靠性开关。 true：广播变量初始化时会远程写到两个节点。 false：仅会写到一个节点。 |
| spark.broadcast.ock.ockThresholdInMb | 缺省值：100 | 广播变量类型阈值（Mb）。当广播变量大小超过该阈值且spark.broadcast.ock.manager=true，设置为OmniShuffle BroadCast变量；否则设置为原生BroadCast变量。 |
| spark.sql.ock.autoConfig.enable | 取值：true/false 默认值：false | OmniShuffle BoostTuning并行度调整使能开关。 |
| spark.sql.adaptive.enabled | 取值：true/false 默认值：false | Spark原生AQE的功能开关，当前OmniShuffle BoostTuning仅使能AQE生效的Spark SQL作业，该配置项应开启为true。 |
| spark.sql.ock.autoConfig.history | 取值：true/false 默认值：true | OmniShuffle BoostTuning是否开启基于历史的并行度调整，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.sample | 取值：true/false 默认值：true | OmniShuffle BoostTuning是否开启基于采样的并行度调整，如果sample与history都不开启，则并行度将不会变化，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.historyRelation | 取值：true/false 默认值：true | （调优项）OmniShuffle BoostTuning是否采用关系式历史记录的算法，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.globalRuntimePartition | 取值：true/false 默认值：false | （调优项）OmniShuffle BoostTuning是否在AQE不使能且无历史记录的场景下通过集群运行资源推理并行度，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.skipSample | 取值：true/false 默认值：true | （调优项）OmniShuffle BoostTuning是否在上游数据量较小时跳过采样流程，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.skipSampleThreshold | 取值：按Spark标准数据量大小格式，如“100M，1K”等 默认值：10G | （调优项）OmniShuffle BoostTuning是否在上游数据量较小时跳过采样流程的阈值，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.historyStrategy | 取值：default、override、readOnly、isolate 默认值：default | OmniShuffle BoostTuning基于历史进行并行度调整的策略，绝大多数场景下不修改，具体含义如下。 default：在不存在历史时采用在线推理，存在历史时使用历史数据。 override：新提交的作业将会读取历史数据，且会覆盖所有历史数据，成为唯一历史数据。 readOnly：新提交的作业运行时数据将不会持久化，即不会写入历史服务。 isolate：新提交的作业既不读取历史数据，也不写入历史数据。 |
| spark.sql.ock.autoConfig.samplePartitionFraction | 取值小于1大于0的小数 默认值：0.01 | （调优项）OmniShuffle BoostTuning采样流程中对数据量的采样比例，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.sampleRDDFraction | 取值小于1大于0的小数 默认值：0.01 | （调优项）OmniShuffle BoostTuning采样流程中对数据分区的采样比例，绝大多数场景下不修改。 |
| spark.sql.ock.autoConfig.partitionRatio | 取值大于0的值 默认值：3.0 | （调优项）OmniShuffle BoostTuning计算Shuffle分区时的系数，绝大多数场景下不修改。 |
| spark.ock.decimal.optimize | 取值：true/false 默认值：false | （调优项）OmniShuffle针对Decimal类型数据计算的优化，绝大多数场景下不修改，本调优项只支持Spark 3.1.1版本。如果打开，需要以下配置。 Java 9及以上，在Java启动选项加上 \-Djdk.attach.allowAttachSelf=true 修改spark.conf文件，增加spark.executor.extraClassPath=${JAVA\_HOME}/lib/\* |


#### mf.conf

| 参数 | 参考值 | 参考值说明 |
| --- | --- | --- |
| ock.mf.ip\_mask | 172.17.0.0~172.17.0.125 | 修改为集群配置mf节点的业务IP地址范围。此配置不包含管理节点IP地址。 |
| ock.mf.ip | 127.0.0.1 | 本节点的环路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内存需不少于50G，目前默认值即为50G。 如果有共享内存配额限制，rc通讯使用内存+mf内存，不超过共享内存配额。rc通讯使用内存要预留10G。单位：bit。 |
| ock.mf.water\_mark\_timer | 50 | 融合场景下内存水位扫描周期，单位：ms。保持默认值。 |
| ock.mf.rpc.timeout | 600000 | mf之间消息超时时间限制，单位：ms。 保持默认10min。 |
| ock.ucache.rpc.enableAuthentication | false | 是否开启安全特性。 true：开启安全特性。 false：不开启安全特性。 若此三项设置为false，后续项不需要再设置。 |
| ock.ucache.rpc.enableTLS | false | 是否开启安全特性。 true：开启安全特性。 false：不开启安全特性。 若此三项设置为false，后续项不需要再设置。 |
| ock.ucache.rpc.enableAuthorization | false | 是否开启安全特性。 true：开启安全特性。 false：不开启安全特性。 若此三项设置为false，后续项不需要再设置。 |
| ock.ucache.rpc.tls.ca.cert.path | $OCK\_HOME/security/tls/server/ca.cert.pem | 证书分发agent\_node\_list中节点生成的OmniShuffle使用的ca.cert.pem文件路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.tls.cert.path | $OCK\_HOME/security/tls/server/server.cert.pem | 证书分发agent\_node\_list中节点生成的OmniShuffle使用的server.cert.pem文件路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.tls.key.path | $OCK\_HOME/security/tls/server/server.private.key.pem | 证书分发agent\_node\_list中节点生成的OmniShuffle使用的server.private.key.pem文件路径。$OCK\_HOME为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.tls.key.pass.path | $OCK\_HOME/security/tls/server/server.keypass.key | 证书分发agent\_node\_list中节点生成的OmniShuffle使用的server.keypass.key文件路径。“$OCK\_HOME”为OmniShuffle安装路径，需按实际配置。 |
| ock.ucache.rpc.tls.crl.path | \- | OmniShuffle用户吊销列表。若无用户吊销列表的路径，则删除该参数。 |
| 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使用的krb5\-server.keytab文件路径。 “$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.auth.kerb.keytab.encrypted | true | keytab加密时设置为true，不加密时设置为false。 |
| ock.ucache.rpc.auth.domain | EXAMPLE.COM | 修改为KDC服务器指定的域名。 |
| ock.ucache.rpc.auth.server.principle.name | ock\_server | OmniShuffle Server端的principal名字 ，目前设置为ock\_server。 |
| ock.ucache.rpc.auth.client.principle.name | ock\_client | OmniShuffle 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安装路径需按实际配置。 “ock.ucache.rpc.author.file.encrypted”参数设置为“true”时修改whitelist为whitelist\_en。 |
| ock.ucache.rpc.author.file.encrypted | true | whitelist文件加密时设置为true，不加密时设置为false。 |
| ock.ucache.kmc.ksf.primary.path | $OCK\_HOME/security/pmt/master/ksfa | OmniShuffle用户kmc\_tool生成的kmc.primary.ks文件。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.kmc.ksf.standby.path | $OCK\_HOME/security/pmt/standby/ksfb | ock用户kmc\_tool生成的kmc.standby.ks文件。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.kmc.ksf.backup.path | $OCK\_HOME/security/pmt/kmcbakup | ock用户kmc.primary.ks文件和kmc.standby.ks文件的备份位置。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。用户可以自行备份，可以改为自己的备份位置。 |
| 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.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。


| 参数 | 参考值 | 参考值说明 |
| --- | --- | --- |
| ock.log.dir | ${OCK\_HOME}/logs/ | OmniShuffle运行日志目录，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.workers.dir | ${OCK\_HOME}/conf/workers | 运行的工作节点主机名目录，一般与Hadoop的工作节点目录相同，“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.log.level | INFO | 运行日志级别，保持默认。 |
| ock.log.fileSize | 20 | 单个运行日志文件大小，单位：M。取值范围：2~20 |
| ock.log.rotation.file.num | 10 | 运行日志绕接的数量，超过该数量的日志会被删除。取值范围：1~20 |
| ock.kv.levelDB.path | /home/ockadmin/opt/ock/leveldb | levelDB存放文件夹，保持默认。 |
| ock.kv.levelDB.write\_buffer\_size | 67108864 | levelDB一个memtable的最大大小，用于性能调优。 |
| ock.kv.levelDB.max\_file\_size | 2097152 | levelDB一个文件的最大大小，用于性能调优。 |
| ock.ucache.enabled | true | Shuffle服务是否可用。 |
| ock.ucache.rpc.shuffle\_server.timeout | 150000 | Shuffle Server RPC超时时间，单位：ms。 |
| ock.ucache.rpc.shuffle\_meta.timeout | 120000 | 元数据服务RPC超时时间，单位：ms。 |
| ock.ucache.rpc.client.auth.timeout | 60000 | 节点的RPC的建链超时时间，单位：ms。 |
| ock.ucache.rpc.local\_blob.get.timeout | 150000 | get LocalBlob单独的RPC超时时间，优先级高于默认时间，单位：ms。 |
| ock.ucache.rpc.local\_blob.commit.timeout | 150000 | 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.ucache.rpc.shuffle\_meta.worker.thread.group | 1,3,3 | 元数据节点的线程池线程数量。 |
| ock.ucache.rpc.shuffle\_meta.worker.thread.cpuset | 无 | 元数据节点的通信工作线程CPU绑核参数。 |
| ock.ucache.rpc.shuffle\_meta.eventMgr.thread.cpuset | 无 | 元数据节点的通信事件管理线程CPU绑核参数。 |
| ock.ucx.tcp.keepintvl | 60s | TCP连接的存续时间，单位：s。在网络状况极差时可以调大。 |
| ock.ucache.rpc.shuffle\_server.port | 3891 | Shuffle Server的服务端口，用户可以自己指定，在端口配置范围内即可。 |
| ock.ucache.rpc.shuffle\_meta.port | 3892 | Shuffle Meta的服务端口，用户可以自己指定，在端口配置范围内即可。 |
| ock.ucache.rpc.manager.port | 3899 | Shuffle Client的服务端口。 |
| ock.ucache.meta.node\_lists | 127.0.0.1 | Meta IP地址需改为127.0.0.X，为集群中设置为管理节点的业务IP地址，多个之间以“,”隔开。例如127.0.0.1,127.0.0.2。 |
| ock.ucache.server.max\_local\_blob\_capacity | 25769803776 | 最大local\_local容量，用户可自行设置大于等于24GB，小于MF内存容量的50%。 目前参考值为24GB，单位：bit。 |
| ock.ucache.server.data.isolation | true | 是否开启OmniShuffle的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 | 80 | mf内存使用率超过设置值后，开始准备释放已经交换出去的ShuffleBlob占用的内存，范围为0~100。不建议修改。 |
| 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安装路径需按实际配置。 |
| 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安装路径需按实际配置。 |
| 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安装路径需按实际配置。 |
| 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安装路径需按实际配置。 |
| ock.ucache.rpc.tls.crl.path | \- | ock用户使用的吊销列表。若无用户吊销列表的路径，可以为空。 |
| ock.ucache.rpc.auth.type | kerberos | 身份认证协议，目前使用Kerberos协议。 |
| ock.ucache.rpc.auth.kerb.client.keytab | ${OCK\_HOME}/security/authentication/krb5\-client\_en.keytab | KDC服务器分发给各节点提交Spark任务用户使用的krb5\-client.keytab文件路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.auth.kerb.server.keytab | ${OCK\_HOME}/security/kdc/krb5\-server\_en.keytab | KDC服务器分发给各节点ock用户使用的krb5\-server.keytab文件路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.auth.kerb.keytab.encrypted | true | keytab是否加密，安全特性开启时设置才有效。 true：keytab加密 false：keytab不加密 |
| ock.ucache.rpc.auth.domain | EXAMPLE.COM | KDC服务器指定的域名。 |
| ock.ucache.rpc.auth.server.principle.name | ock\_server | OmniShuffle Server端的principal名字 ，目前设置为ock\_server。 |
| ock.ucache.rpc.auth.client.principle.name | ock\_client | OmniShuffle 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.author.type | whitelist | 默认设置为whitelist。 |
| ock.ucache.rpc.author.file.path | ${OCK\_HOME}/security/authorization/whitelist | KDC配置生成的whitelist所在的路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。“ock.ucache.rpc.author.file.encrypted”参数设置为“true”时修改whitelist为whitelist\_en。 |
| ock.ucache.rpc.author.file.encrypted | true | whitelist文件是否加密。 true：加密 false：不加密 |
| 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安装路径需按实际配置。 |
| ock.ucache.kmc.ksf.standby.path | ${OCK\_HOME}/security/pmt/standby/ksfb | ock用户kmc\_tool生成的kmc.standby.ks文件。“${OCK\_HOME}”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.kmc.ksf.backup.path | ${OCK\_HOME}/security/pmt/kmcbakup | ock用户kmc.primary.ks文件和kmc.standby.ks文件的备份位置。“${OCK\_HOME}”为OmniShuffle安装路径需按实际配置。用户可以自行备份，可以改为自己的备份位置。 |
| ock.zookeeper.security.principle.name | zookeeper | 配置Kerberos认证server端principle名，代表principle的第1部分。 |
| ock.zookeeper.security.principle.hostname | master | 配置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.isKeytabEncrypt | true | client.keytab是否是加密的。 true：加密的 false：非加密的 |
| 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/master@HUAWEI.COM | 配置ock用户Kerberos认证ZooKeeper Client端principle（master为节点hostname，HUAWEI.COM为KDC设置的域名）。 |
| ock.zookeeper.security.client.keytab | ${OCK\_HOME}/security/kdc/krb5\-server\_en.keytab | 配置ock用户Kerberos认证ZooKeeper Client端keytab路径。“${OCK\_HOME}”为OmniShuffle安装路径需按实际配置 |
| 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/23.0.0/linux\-aarch64/lib/common/openssl/libssl.so | OmniShuffle所依赖的openssl so加载路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock.ucache.rpc.crypto.path | ${OCK\_HOME}/ucache/23.0.0/linux\-aarch64/lib/common/openssl/libcrypto.so | OmniShuffle所依赖的crypto so加载路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| 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.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/master@HUAWEI.COM | 配置提交Spark任务用户Kerberos认证ZooKeeper Client端principle(master为节点hostname，HUAWEI.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.tuning.enabled | true | BoostTuning服务是否可用。 |
| ock.tuning.history.persist.type | local | 历史记录持久化方式。 local：本地csv文件 kv：levelDb存储 |
| ock.tuning.history.persist.path | ${OCK\_HOME}/history | 历史记录存放路径。 |
| ock.tuning.history.file.max.number | 5 | 仅local方式有效，存放历史记录的文件最大个数，取值范围[1,5]。 |
| ock.tuning.history.file.read.number | 2 | 仅local方式有效，读取历史记录的文件个数，每次读取最新的文件，取值范围[1,2]。 |
| ock.tuning.rpc.server.port | 3893 | RPC服务的端口。 |
| ock.tuning.rpc.timeout | 240000 | RPC服务超时毫秒数。 |


#### ock-start-ockd-by-yarn.sh

| 参数 | 参考值 | 参考值说明 |
| --- | --- | --- |
| 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

| 参数 | 参考值 | 参考值说明 |
| --- | --- | --- |
| ock\_vcore | 15 | OmniShuffle占用的CPU数目。 |
| ock\_memory | 61440 | OmniShuffle占用的内存数目，取mf内存的110%容量和mf内存加上10GB两者之间的最大值，包含自身运行内存。单位：MB。 |
| master\_vcore | 5 | launch master占用的CPU数目。 |
| master\_memory | 10240 | launch master占用的内存数目，单位：MB。 |
| queue | 空 | OmniShuffle所在Yarn队列。 |
| ock\_master\_partition\_label | 空 | launch master所在的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部署路径。 |
| ock\_version\_dir | $(cd "$(dirname $0)"/../..\|\|exit 0; pwd) | OmniShuffle版本路径。 |
| ock\_version | "${ock\_version\_dir\#\#\*/}" | OmniShuffle版本号。 |
| ock\_run\_shell\_path | "${local\_dir}/ock\-start\-ockd\-by\-yarn.sh" | Yarn启动OmniShuffle的脚本路径。 |
| ock\_nodes\_list\_path | "${ock\_home}/conf/ock\_node\_list" | OmniShuffle所在节点列表配置文件路径。 |
| client\_jar\_path | "${ock\_home}/jars/ock\-launch\-cluster\-${ock\_version}.jar" | Yarn启动OmniShuffle的JAR文件路径。 |
| log\_path | "${ock\_home}/logs/ock\-launch\-cluster.log" | Yarn启动OmniShuffle的日志文件路径。 |
| appid\_path | "${ock\_home}/work/yarn\-appids/yarn\-ock.appid" | Yarn启动OmniShuffle的app id文件路径。 |


#### ock-stop-cluster.sh

| 参数 | 参考值 | 参考值说明 |
| --- | --- | --- |
| ock\_home | "$(cd "$(dirname $0)"/../../../..\|\|exit ${EXT}; pwd)" | OmniShuffle部署路径。 |
| appid\_path | "${ock\_home}/work/yarn\-appids/yarn\-ock.appid" | Yarn关停OmniShuffle的app id文件路径。 |
| log\_path | "${OCK\_HOME}/logs/ock\-stop\-cluster.log" | Yarn关停OmniShuffle的日志文件路径。“$OCK\_HOME”为OmniShuffle安装路径需按实际配置。 |
| ock\_id | $(cat ${appid\_path}\|grep \-Eo "application\_[0\-9]+\_[0\-9]+") | Yarn中OCK的application\_id。 |
