Apache Spark 和 Apache Hadoop (HDFS) 組態屬性

適用於:SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項

巨量資料叢集支援 Apache Spark 和 Hadoop 元件在服務和資源範圍內的部署時間和部署後時間組態。 對於大部分的組態,巨量資料叢集會使用與個別開放原始碼專案相同的預設組態值。 下列是我們所變更的設定,以及描述及其預設值。 除了閘道資源以外,在服務範圍和資源範圍內可設定的設定之間沒有任何差異。

您可以在相關聯的 Apache 文件網站中,找到其各自的所有可能設定與預設值:

我們不支援的設定也會列於下方。

注意

若要在存放集區中包含 Spark,請在 spec.resources.storage-0.spec.settings.sparkbdc.json 設定檔中設定布林值 includeSpark。 如需相關指示,請參閱在巨量資料叢集中設定 Apache Spark 和 Apache Hadoop

巨量資料叢集專用的預設 Spark 設定

下列 Spark 設定是具有 BDC 特定預設值,但可由使用者設定的設定。 系統管理的設定不包含在內。

設定名稱 描述 類型 預設值
capacity-scheduler.yarn.scheduler.capacity.maximum-applications 系統中可以並行處於使用中狀態 (執行中和擱置中) 的應用程式數目上限。 int 10000
capacity-scheduler.yarn.scheduler.capacity.resource-calculator 要用來比較排程器中資源的 ResourceCalculator 實作。 字串 org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
capacity-scheduler.yarn.scheduler.capacity.root.queues 具有預先定義佇列的容量排程器稱為 root。 字串 default
capacity-scheduler.yarn.scheduler.capacity.root.default.capacity 以百分比 (%) 表示的佇列容量,作為 root 佇列的絕對資源佇列最小容量。 int 100
spark-defaults-conf.spark.driver.cores 要用於驅動程式程序的核心數目,僅適用於叢集模式。 int 1
spark-defaults-conf.spark.driver.memoryOverhead 在叢集模式中,每個驅動程式要配置的堆外記憶體數量。 int 384
spark-defaults-conf.spark.executor.instances 靜態配置的執行程式數目。 int 1
spark-defaults-conf.spark.executor.cores 要用於每個執行程式的核心數目。 int 1
spark-defaults-conf.spark.driver.memory 要用於驅動程式程序的記憶體數量。 字串 1g
spark-defaults-conf.spark.executor.memory 每個執行程式程序要使用的記憶體數量。 字串 1g
spark-defaults-conf.spark.executor.memoryOverhead 每個執行程式要配置的堆外記憶體數量。 int 384
yarn-site.yarn.nodemanager.resource.memory-mb 可配置給容器的實體記憶體數量 (以 MB 為單位)。 int 8192
yarn-site.yarn.scheduler.maximum-allocation-mb 資源管理員上每個容器要求的最大配置。 int 8192
yarn-site.yarn.nodemanager.resource.cpu-vcores 可為容器配置的 CPU 核心數目。 int 32
yarn-site.yarn.scheduler.maximum-allocation-vcores 資源管理員上每個容器要求的最大配置,以虛擬 CPU 核心表示。 int 8
yarn-site.yarn.nodemanager.linux-container-executor.secure-mode.pool-user-count 安全模式中 Linux 容器執行程式的集區使用者數目。 int 6
yarn-site.yarn.scheduler.capacity.maximum-am-resource-percent 叢集中可用來執行應用程式主機的資源百分比上限。 FLOAT 0.1
yarn-site.yarn.nodemanager.container-executor.class 特定作業系統的容器執行程式。 字串 org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor
capacity-scheduler.yarn.scheduler.capacity.root.default.user-limit-factor 佇列容量的倍數,可設定為允許單一使用者取得更多資源。 int 1
capacity-scheduler.yarn.scheduler.capacity.root.default.maximum-capacity 以百分比 (%) 表示的佇列容量上限,作為浮點數或絕對資源佇列最大容量。 將此值設定為 -1 會將容量上限設定為 100%。 int 100
capacity-scheduler.yarn.scheduler.capacity.root.default.state 佇列的狀態可以是「執行中」或「已停止」其中之一。 字串 RUNNING
capacity-scheduler.yarn.scheduler.capacity.root.default.maximum-application-lifetime 提交給佇列的應用程式最長存留期 (以秒為單位)。 小於或等於零的任何值都會視為停用。 int -1
capacity-scheduler.yarn.scheduler.capacity.root.default.default-application-lifetime 提交給佇列的應用程式預設存留期 (以秒為單位)。 小於或等於零的任何值都會視為停用。 int -1
capacity-scheduler.yarn.scheduler.capacity.node-locality-delay 錯過的排程機會數目,在此之後 CapacityScheduler 會嘗試建立機架本機 (rack-local) 容器的排程。 int 40
capacity-scheduler.yarn.scheduler.capacity.rack-locality-additional-delay 超過節點位置延遲的額外錯過的排程機會數目,在此之後 CapacityScheduler 會嘗試建立關閉容器的排程。 int -1
hadoop-env.HADOOP_HEAPSIZE_MAX 所有 Hadoop JVM 處理序的預設堆積大小上限。 int 2048
yarn-env.YARN_RESOURCEMANAGER_HEAPSIZE Yarn ResourceManager 的堆積大小。 int 2048
yarn-env.YARN_NODEMANAGER_HEAPSIZE Yarn NodeManager 的堆積大小。 int 2048
mapred-env.HADOOP_JOB_HISTORYSERVER_HEAPSIZE Hadoop 作業 HistoryServer 的堆積大小。 int 2048
hive-env.HADOOP_HEAPSIZE Hadoop 用於 Hive 的堆積大小。 int 2048
livy-conf.livy.server.session.timeout-check Livy 伺服器工作階段逾時檢查。 bool true
livy-conf.livy.server.session.timeout-check.skip-busy 用於 Livy 伺服器工作階段逾時檢查的 Skip-busy。 bool true
livy-conf.livy.server.session.timeout Livy 伺服器工作階段的逾時 (ms/s/m | min/h/d/y)。 字串 2h
livy-conf.livy.server.yarn.poll-interval Livy 伺服器中 Yarn 的輪詢間隔 (ms/s/m | min/h/d/y)。 字串 500ms
livy-conf.livy.rsc.jars Livy RSC jar。 字串 local:/opt/livy/rsc-jars/livy-api.jar,local:/opt/livy/rsc-jars/livy-rsc.jar,local:/opt/livy/rsc-jars/netty-all.jar
livy-conf.livy.repl.jars Livy repl jar。 字串 local:/opt/livy/repl_2.11-jars/livy-core.jar,local:/opt/livy/repl_2.11-jars/livy-repl.jar,local:/opt/livy/repl_2.11-jars/commons-codec.jar
livy-conf.livy.rsc.sparkr.package Livy RSC SparkR 套件。 字串 hdfs:///system/livy/sparkr.zip
livy-env.LIVY_SERVER_JAVA_OPTS Livy 伺服器 JAVA 選項。 字串 -Xmx2g
spark-defaults-conf.spark.r.backendConnectionTimeout R 處理序在其連線到 RBackend 時所設定的連線逾時 (以秒為單位)。 int 86400
spark-defaults-conf.spark.pyspark.python Spark 的 Python 選項。 字串 /opt/bin/python3
spark-defaults-conf.spark.yarn.jars Yarn Jar。 字串 local:/opt/spark/jars/*
spark-history-server-conf.spark.history.fs.cleaner.maxAge 作業歷程記錄檔的最長存留期,超過該時間之後,檔案系統歷程記錄清除工具就會將其刪除 (ms/s/m | min/h/d/y)。 字串 7d
spark-history-server-conf.spark.history.fs.cleaner.interval Spark 歷程記錄的清除工具間隔 (ms/s/m | min/h/d/y)。 字串 12h
hadoop-env.HADOOP_CLASSPATH 設定其他 Hadoop classpath。 字串
spark-env.SPARK_DAEMON_MEMORY Spark 精靈記憶體。 字串 2g
yarn-site.yarn.log-aggregation.retain-seconds 啟用記錄彙總後,這個屬性會決定保留記錄的秒數。 int 604800
yarn-site.yarn.nodemanager.log-aggregation.compression-type 用於 Yarn NodeManager 記錄彙總的壓縮類型。 字串 gz
yarn-site.yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds NodeManager 記錄彙總中滾動監視的間隔秒數。 int 3600
yarn-site.yarn.scheduler.minimum-allocation-mb 資源管理員上每個容器要求的最小配置 (以 MB 為單位)。 int 512
yarn-site.yarn.scheduler.minimum-allocation-vcores 資源管理員上每個容器要求的最小配置,以虛擬 CPU 核心表示。 int 1
yarn-site.yarn.nm.liveness-monitor.expiry-interval-ms 在節點管理員視為無作用之前要等待的時間。 int 180000
yarn-site.yarn.resourcemanager.zk-timeout-ms 'ZooKeeper' 工作階段逾時 (以毫秒為單位)。 int 40000
capacity-scheduler.yarn.scheduler.capacity.root.default.acl_application_max_priority 可提交已設定優先順序之應用程式的使用者 ACL。 例如,[user={name} group={name} max_priority={priority} default_priority={priority}]。 字串 *
includeSpark 用來設定 Spark 作業是否可在存放集區中執行的布林值。 bool true
enableSparkOnK8s 用來設定是否在 K8s 上啟用 Spark (這會在 Spark 前端中新增 K8s 的容器) 的布林值。 bool false
sparkVersion Spark 的版本 字串 2.4
spark-env.PYSPARK_ARCHIVES_PATH Spark 作業中使用的 pyspark 封存 Jar 路徑。 字串 local:/opt/spark/python/lib/pyspark.zip,local:/opt/spark/python/lib/py4j-0.10.7-src.zip

下列各節會列出不支援的設定。

巨量資料叢集專用的預設 HDFS 設定

下列 HDFS 設定是具有 BDC 特定預設值,但可由使用者設定的設定。 系統管理的設定不包含在內。

設定名稱 描述 類型 預設值
hdfs-site.dfs.replication 預設區塊複寫。 int 2
hdfs-site.dfs.namenode.provided.enabled 讓名稱節點能夠處理提供的儲存體。 bool true
hdfs.site.dfs.namenode.mount.acls.enabled 設定為 true,以在掛接期間從遠端存放區繼承 ACL (存取控制清單)。 bool false
hdfs-site.dfs.datanode.provided.enabled 讓資料節點能夠處理提供的儲存體。 bool true
hdfs-site.dfs.datanode.provided.volume.lazy.load 在資料節點中為提供的儲存體啟用消極式載入。 bool true
hdfs-site.dfs.provided.aliasmap.inmemory.enabled 為提供的儲存體啟用記憶體內部別名對應。 bool true
hdfs-site.dfs.provided.aliasmap.class 用來指定所提供儲存體上區塊輸入格式的類別。 字串 org.apache.hadoop.hdfs.server.common.blockaliasmap.impl.InMemoryLevelDBAliasMapClient
hdfs-site.dfs.namenode.provided.aliasmap.class 用來指定為 namenode 所提供儲存體上區塊輸入格式的類別。 字串 org.apache.hadoop.hdfs.server.common.blockaliasmap.impl.NamenodeInMemoryAliasMapClient
hdfs-site.dfs.provided.aliasmap.load.retries datanode 上的重試次數,用來載入所提供的 aliasmap。 int 0
hdfs-site.dfs.provided.aliasmap.inmemory.batch-size 逐一查看支援 aliasmap 的資料庫時的批次大小。 int 500
hdfs-site.dfs.datanode.provided.volume.readthrough 在 datanode 中為提供的儲存體啟用 readthrough。 bool true
hdfs-site.dfs.provided.cache.capacity.mount 為提供的儲存體啟用快取容量掛接。 bool true
hdfs-site.dfs.provided.overreplication.factor 所提供儲存體的 Overreplication 因數。 每個遠端 HDFS 區塊在 BDC 上建立的快取區塊數目。 FLOAT 1
hdfs-site.dfs.provided.cache.capacity.fraction 所提供儲存體的快取容量分數。 叢集中可用來從所提供存放區快取資料的總容量分數。 FLOAT 0.01
hdfs-site.dfs.provided.cache.capacity.bytes 要作為所提供區塊快取空間的叢集容量 (以位元組為單位)。 int -1
hdfs-site.dfs.ls.limit 限制 ls 列印的檔案數目。 int 500
hdfs-env.HDFS_NAMENODE_OPTS HDFS Namenode 選項。 字串 -Dhadoop.security.logger=INFO,RFAS -Xmx2g
hdfs-env.HDFS_DATANODE_OPTS HDFS Datanode 選項。 字串 -Dhadoop.security.logger=ERROR,RFAS -Xmx2g
hdfs-env.HDFS_ZKFC_OPTS HDFS ZKFC 選項。 字串 -Xmx1g
hdfs-env.HDFS_JOURNALNODE_OPTS HDFS JournalNode 選項。 字串 -Xmx2g
hdfs-env.HDFS_AUDIT_LOGGER HDFS 稽核記錄器選項。 字串 INFO,RFAAUDIT
core-site.hadoop.security.group.mapping.ldap.search.group.hierarchy.levels 核心網站 Hadoop LDAP 搜尋群組的階層層級。 int 10
core-site.fs.permissions.umask-mode 權限 umask 模式。 字串 077
core-site.hadoop.security.kms.client.failover.max.retries 用戶端容錯移轉的重試次數上限。 int 20
zoo-cfg.tickTime 'ZooKeeper' 設定的刻度時間。 int 2000
zoo-cfg.initLimit 'ZooKeeper' 設定的初始化時間。 int 10
zoo-cfg.syncLimit 'ZooKeeper' 設定的同步時間。 int 5
zoo-cfg.maxClientCnxns 'ZooKeeper' 設定的用戶端連線上限。 int 60
zoo-cfg.minSessionTimeout 'ZooKeeper' 設定的最短工作階段逾時。 int 4000
zoo-cfg.maxSessionTimeout 'ZooKeeper' 設定的最長工作階段逾時。 int 40000
zoo-cfg.autopurge.snapRetainCount 自動清除 'ZooKeeper' 設定的貼齊保留計數。 int 3
zoo-cfg.autopurge.purgeInterval 自動清除 'ZooKeeper' 設定的清除間隔。 int 0
zookeeper-java-env.JVMFLAGS 'ZooKeeper' 中 JAVA 環境的 JVM 旗標。 字串 -Xmx1G -Xms1G
zookeeper-log4j-properties.zookeeper.console.threshold 'ZooKeeper' 中 log4j 主控台的閾值。 字串 INFO
zoo-cfg.zookeeper.request.timeout 控制 'ZooKeeper' 要求逾時 (以毫秒為單位)。 int 40000
kms-site.hadoop.security.kms.encrypted.key.cache.size Hadoop KMS 中加密金鑰的快取大小。 int 500

巨量資料叢集專用的預設閘道設定

下列閘道設定是具有 BDC 特定預設值,但可由使用者設定的設定。 系統管理的設定不包含在內。 您只能在資源範圍內設定閘道設定。

設定名稱 描述 類型 預設值
gateway-site.gateway.httpclient.socketTimeout 閘道中 HTTP 用戶端的通訊端逾時 (ms/s/m)。 字串 90s
gateway-site.sun.security.krb5.debug 針對 Kerberos 安全性進行偵錯。 bool true
knox-env.KNOX_GATEWAY_MEM_OPTS KNOX 閘道記憶體選項。 字串 -Xmx2g

不支援的 Spark 組態

不支援下列 spark 組態,且無法在巨量資料叢集的內容中變更。

類別 子類別 File 不支援的組態
yarn-site yarn-site.xml yarn.log-aggregation-enable
yarn.log.server.url
yarn.nodemanager.pmem-check-enabled
yarn.nodemanager.vmem-check-enabled
yarn.nodemanager.aux-services
yarn.resourcemanager.address
yarn.nodemanager.address
yarn.client.failover-no-ha-proxy-provider
yarn.client.failover-proxy-provider
yarn.http.policy
yarn.nodemanager.linux-container-executor.secure-mode.use-pool-user
yarn.nodemanager.linux-container-executor.secure-mode.pool-user-prefix
yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user
yarn.acl.enable
yarn.admin.acl
yarn.resourcemanager.hostname
yarn.resourcemanager.principal
yarn.resourcemanager.keytab
yarn.resourcemanager.webapp.spnego-keytab-file
yarn.resourcemanager.webapp.spnego-principal
yarn.nodemanager.principal
yarn.nodemanager.keytab
yarn.nodemanager.webapp.spnego-keytab-file
yarn.nodemanager.webapp.spnego-principal
yarn.resourcemanager.ha.enabled
yarn.resourcemanager.cluster-id
yarn.resourcemanager.zk-address
yarn.resourcemanager.ha.rm-ids
yarn.resourcemanager.hostname.*
capacity-scheduler capacity-scheduler.xml yarn.scheduler.capacity.root.acl_submit_applications
yarn.scheduler.capacity.root.acl_administer_queue
yarn.scheduler.capacity.root.default.acl_application_max_priority
yarn-env yarn-env.sh
spark-defaults-conf spark-defaults.conf spark.yarn.archive
spark.yarn.historyServer.address
spark.eventLog.enabled
spark.eventLog.dir
spark.sql.warehouse.dir
spark.sql.hive.metastore.version
spark.sql.hive.metastore.jars
spark.extraListeners
spark.metrics.conf
spark.ssl.enabled
spark.authenticate
spark.network.crypto.enabled
spark.ssl.keyStore
spark.ssl.keyStorePassword
spark.ui.enabled
spark-env spark-env.sh SPARK_NO_DAEMONIZE
SPARK_DIST_CLASSPATH
spark-history-server-conf spark-history-server.conf spark.history.fs.logDirectory
spark.ui.proxyBase
spark.history.fs.cleaner.enabled
spark.ssl.enabled
spark.authenticate
spark.network.crypto.enabled
spark.ssl.keyStore
spark.ssl.keyStorePassword
spark.history.kerberos.enabled
spark.history.kerberos.principal
spark.history.kerberos.keytab
spark.ui.filters
spark.acls.enable
spark.history.ui.acls.enable
spark.history.ui.admin.acls
spark.history.ui.admin.acls.groups
livy-conf livy.conf livy.keystore
livy.keystore.password
livy.spark.master
livy.spark.deploy-mode
livy.rsc.jars
livy.repl.jars
livy.rsc.pyspark.archive
livy.rsc.sparkr.package
livy.repl.enable-hive-context
livy.superusers
livy.server.auth.type
livy.server.launch.kerberos.keytab
livy.server.launch.kerberos.principal
livy.server.auth.kerberos.principal
livy.server.auth.kerberos.keytab
livy.impersonation.enabled
livy.server.access-control.enabled
livy.server.access-control.*
livy-env livy-env.sh
hive-site hive-site.xml javax.jdo.option。連線 ionURL
javax.jdo.option。連線 ionDriverName
javax.jdo.option。連線 ionUserName
javax.jdo.option。連線 ionPassword
hive.metastore.uris
hive.metastore.pre.event.listeners
hive.security.authorization.enabled
hive.security.metastore.authenticator.manager
hive.security.metastore.authorization.manager
hive.metastore.use.SSL
hive.metastore.keystore.path
hive.metastore.keystore.password
hive.metastore.truststore.path
hive.metastore.truststore.password
hive.metastore.kerberos.keytab.file
hive.metastore.kerberos.principal
hive.metastore.sasl.enabled
hive.metastore.execute.setugi
hive.cluster.delegation.token.store.class
hive-env hive-env.sh

不支援的 HDFS 組態

不支援下列 hdfs 組態,且無法在巨量資料叢集的內容中變更。

類別 子類別 File 不支援的組態
core-site core-site.xml fs.defaultFS
ha.zookeeper.quorum
hadoop.tmp.dir
hadoop.rpc.protection
hadoop.security.auth_to_local
hadoop.security.authentication
hadoop.security.authorization
hadoop.http.authentication.simple.anonymous.allowed
hadoop.http.authentication.type
hadoop.http.authentication.kerberos.principal
hadoop.http.authentication.kerberos.keytab
hadoop.http.filter.initializers
hadoop.security.group.mapping.*
hadoop.security.key.provider.path
mapred-env mapred-env.sh
hdfs-site hdfs-site.xml dfs.namenode.name.dir
dfs.datanode.data.dir
dfs.namenode.acls.enabled
dfs.namenode.datanode.registration.ip-hostname-check
dfs.client.retry.policy.enabled
dfs.permissions.enabled
dfs.nameservices
dfs.ha.namenodes.nmnode-0
dfs.namenode.rpc-address.nmnode-0.*
dfs.namenode.shared.edits.dir
dfs.ha.automatic-failover.enabled
dfs.ha.fencing.methods
dfs.journalnode.edits.dir
dfs.client.failover.proxy.provider.nmnode-0
dfs.namenode.http-address
dfs.namenode.httpS-address
dfs.http.policy
dfs.encrypt.data.transfer
dfs.block.access.token.enable
dfs.data.transfer.protection
dfs.encrypt.data.transfer.cipher.suites
dfs.https.port
dfs.namenode.keytab.file
dfs.namenode.kerberos.principal
dfs.namenode.kerberos.internal.spnego.principal
dfs.datanode.data.dir.perm
dfs.datanode.address
dfs.datanode.http.address
dfs.datanode.ipc.address
dfs.datanode.https.address
dfs.datanode.keytab.file
dfs.datanode.kerberos.principal
dfs.journalnode.keytab.file
dfs.journalnode.kerberos.principal
dfs.journalnode.kerberos.internal.spnego.principal
dfs.web.authentication.kerberos.keytab
dfs.web.authentication.kerberos.principal
dfs.webhdfs.enabled
dfs.permissions.superusergroup
hdfs-env hdfs-env.sh HADOOP_HEAPSIZE_MAX
zoo-cfg zoo.cfg secureClientPort
clientPort
dataDir
dataLogDir
4lw.commands.whitelist
zookeeper-java-env java.env ZK_LOG_DIR
SERVER_JVMFLAGS
zookeeper-log4j-properties log4j.properties (zookeeper) log4j.rootLogger
log4j.appender.CONSOLE.*

注意

本文包含 whitelist 一詞,Microsoft 認為該字詞在此內容中不屬於敏感詞彙。 因為該字詞目前出現在軟體中,所以也會出現在本發行項中。 當軟體移除該字詞時,我們也會將其從發行項中移除。

不支援的 gateway 組態

不支援下列 gateway 組態,且無法在巨量資料叢集的內容中變更。

類別 子類別 File 不支援的組態
gateway-site gateway-site.xml gateway.port
gateway.path
gateway.gateway.conf.dir
gateway.hadoop.kerberos.secured
java.security.krb5.conf
java.security.auth.login.config
gateway.websocket.feature.enabled
gateway.scope.cookies.feature.enabled
ssl.exclude.protocol
ssl.include.ciphers

下一步

設定 SQL Server 巨量資料叢集