Ambari Server Configuration

Introduction

Ambari Server is configured using a flat text properties file. The file is read once when starting Ambari. Any changes made to the properties file are only reflected after restarting Ambari.

/etc/ambari-server/conf/ambari.properties

Configuration Properties

The following are the properties which can be used to configure Ambari.

Property NameDescriptionDefault
active.instanceIndicates whether the current ambari server instance is active or not.true
agent.api.acceptor.countCount of acceptors to configure for the jetty connector used for Ambari agent.
agent.api.gzip.compression.enabledDetermiens whether communication with the Ambari Agents should have the JSON payloads compressed with GZIP.true
agent.auto.cache.updateDetermines whether the agents will automatically attempt to download updates to stack resources from the Ambari Server.true
agent.check.mounts.timeoutThe timeout, used by the timeout command in linux, when checking mounts for free capacity.0
agent.check.remote.mountsDetermines whether the Ambari Agents will use the df or df -l command when checking disk mounts for capacity issues. Auto-mounted remote directories can cause long delays.false
agent.package.install.task.timeoutThe time, in seconds, before package installation commands are killed.1800
agent.package.parallel.commands.limitThe maximum number of tasks which can run within a single operational request. If there are more tasks, then they will be broken up between multiple operations.100
agent.service.check.task.timeoutThe time, in seconds, before agent service check commands are killed.0
agent.sslDetermines whether SSL is used to communicate between Ambari Server and Ambari Agents.true
agent.stack.retry.on_repo_unavailabilityDetermines whether agents should retrying installation commands when the repository is not available. This can prevent false installation errors with repositories that are sporadically inaccessible.false
agent.stack.retry.triesThe number of times an Ambari Agent should retry package installation when it fails due to a repository error.

This property is related to agent.stack.retry.on_repo_unavailability.
5
agent.task.timeoutThe time, in seconds, before agent commands are killed. This does not include package installation commands.900
agent.threadpool.size.maxThe size of the Jetty connection pool used for handling incoming Ambari Agent requests.25
agents.registration.queue.sizeQueue size for agents in registration.200
agents.reports.processing.periodPeriod in seconds with agents reports will be processed.1
agents.reports.processing.start.timeoutTimeout in seconds before start processing of agents' reports.5
agents.reports.thread.pool.sizeThread pool size for agents reports processing.10
alerts.ambari.snmp.dispatcher.udp.portThe UDP port to use when binding the Ambari SNMP dispatcher on Ambari Server startup. If no port is specified, then a random port will be used.
alerts.cache.enabledDetermines whether current alerts should be cached. Enabling this can increase performance on large cluster, but can also result in lost alert data if the cache is not flushed frequently.false
alerts.cache.flush.intervalThe time, in minutes, after which cached alert information is flushed to the database

This property is related to alerts.cache.enabled.
10
alerts.cache.sizeThe size of the alert cache.

This property is related to alerts.cache.enabled.
50000
alerts.execution.scheduler.threadpool.size.coreThe core number of threads used to process incoming alert events. The value should be increased as the size of the cluster increases.2
alerts.execution.scheduler.threadpool.size.maxThe number of threads used to handle alerts received from the Ambari Agents. The value should be increased as the size of the cluster increases.2
alerts.execution.scheduler.threadpool.worker.sizeThe number of queued alerts allowed before discarding old alerts which have not been handled. The value should be increased as the size of the cluster increases.2000
alerts.server.side.scheduler.threadpool.size.coreThe core pool size of the executor service that runs server side alerts.4
alerts.snmp.dispatcher.udp.portThe UDP port to use when binding the SNMP dispatcher on Ambari Server startup. If no port is specified, then a random port will be used.
alerts.template.fileThe full path to the XML file that describes the different alert templates.
ambari.display.urlThe URL to use when creating messages which should include the Ambari Server URL.

The following are examples of valid values:http://ambari.apache.org:8080
ambari.post.user.creation.hookThe location of the post user creation hook on the ambari server hosting machine./var/lib/ambari-server/resources/scripts/post-user-creation-hook.sh
ambari.post.user.creation.hook.enabledIndicates whether the post user creation is enabled or not. By default is false.false
ambari.python.wrapThe name of the shell script used to wrap all invocations of Python by Ambari.ambari-python-wrap
ambariserver.metrics.disableGlobal disable flag for AmbariServer Metrics.false
anonymous.audit.nameThe name of the user given to requests which are executed without any credentials._anonymous
api.authenticated.userThe username of the default user assumed to be executing API calls. When set, authentication is not required in order to login to Ambari or use the REST APIs.
api.csrfPrevention.enabledDetermines whether Cross-Site Request Forgery attacks are prevented by looking for the X-Requested-By header.true
api.gzip.compression.enabledDetermines whether data sent to and from the Ambari service should be compressed.true
api.gzip.compression.min.sizeUsed in conjunction with api.gzip.compression.enabled, determines the mininum size that an HTTP request must be before it should be compressed. This is measured in bytes.10240
api.heartbeat.intervalServer to API STOMP endpoint heartbeat interval in milliseconds.10000
api.sslDetermines whether SSL is used in for secure connections to Ambari. When enabled, ambari-server setup-https must be run in order to properly configure keystores.false
auditlog.enabledDetermines whether audit logging is enabled.true
auditlog.logger.capacityThe size of the worker queue for audit logger events.

This property is related to auditlog.enabled.
10000
authentication.kerberos.auth_to_local.rulesThe auth-to-local rules set to use when translating a user's principal name to a local user name during authentication via SPNEGO.DEFAULT
authentication.kerberos.enabledDetermines whether to use Kerberos (SPNEGO) authentication when connecting Ambari.false
authentication.kerberos.spnego.keytab.fileThe Kerberos keytab file to use when verifying user-supplied Kerberos tokens for authentication via SPNEGO/etc/security/keytabs/spnego.service.keytab
authentication.kerberos.spnego.principalThe Kerberos principal name to use when verifying user-supplied Kerberos tokens for authentication via SPNEGOHTTP/_HOST
authentication.local.max.failuresThe maximum number of authentication attempts permitted to a local user. Once the number of failures reaches this limit the user will be locked out. 0 indicates unlimited failures.0
authentication.local.show.locked.account.messagesShow or hide whether the user account is disabled or locked out, if relevant, when an authentication attempt fails.false
auto.group.creationThe auto group creation by Ambarifalse
bootstrap.dirThe directory on the Ambari Server file system used for storing Ambari Agent bootstrap information such as request responses./var/run/ambari-server/bootstrap
bootstrap.master_host_nameThe host name of the Ambari Server which will be used by the Ambari Agents for communication.
bootstrap.scriptThe location and name of the Python script used to bootstrap new Ambari Agent hosts./usr/lib/ambari-server/lib/ambari_server/bootstrap.py
bootstrap.setup_agent.passwordThe password to set on the AMBARI_PASSPHRASE environment variable before invoking the bootstrap script.password
bootstrap.setup_agent.scriptThe location and name of the Python script executed on the Ambari Agent host during the bootstrap process./usr/lib/ambari-server/lib/ambari_server/setupAgent.py
client.api.acceptor.countCount of acceptors to configure for the jetty connector used for Ambari API.
client.api.portThe port that client connections will use with the REST API. The Ambari Web client runs on this port.8080
client.api.ssl.cert_pass_fileThe filename which contains the password for the keystores, truststores, and certificates for the REST API when it's protected by SSL.https.pass.txt
client.api.ssl.crt_passThe password for the keystores, truststores, and certificates for the REST API when it's protected by SSL. If not specified, then client.api.ssl.cert_pass_file should be used.
client.api.ssl.keys_dirThe location on the Ambari server where the REST API keystore and password files are stored if using SSL.
client.api.ssl.keystore_nameThe name of the keystore used when the Ambari Server REST API is protected by SSL.https.keystore.p12
client.api.ssl.keystore_typeThe type of the keystore file specified in client.api.ssl.keystore_name. Self-signed certificates can be PKCS12 while CA signed certificates are JKSPKCS12
client.api.ssl.portThe port that client connections will use with the REST API when using SSL. The Ambari Web client runs on this port if SSL is enabled.8443
client.api.ssl.truststore_nameThe name of the truststore used when the Ambari Server REST API is protected by SSL.https.keystore.p12
client.api.ssl.truststore_typeThe type of the keystore file specified in client.api.ssl.truststore_name. Self-signed certificates can be PKCS12 while CA signed certificates are JKSPKCS12
client.securityThe type of authentication mechanism used by Ambari.

The following are examples of valid values:localldappam
client.threadpool.size.maxThe size of the Jetty connection pool used for handling incoming REST API requests. This should be large enough to handle requests from both web browsers and embedded Views.25
common.services.pathThe location on the Ambari Server where common service resources exist. Stack services share the common service files.

The following are examples of valid values:/var/lib/ambari-server/resources/common-services
custom.action.definitionsThe location on the Ambari Server where custom actions are defined./var/lib/ambari-server/resources/custom_action_definitions
db.mysql.jdbc.nameThe name of the MySQL JDBC JAR connector.mysql-connector-java.jar
db.oracle.jdbc.nameThe name of the Oracle JDBC JAR connector.ojdbc6.jar
default.kdcserver.portThe port used to communicate with the Kerberos Key Distribution Center.88
execution.command.retry.countThe number of attempts to emit execution command message to agent. Default is 44
execution.command.retry.intervalThe interval in seconds between attempts to emit execution command message to agent. Default is 1515
extensions.pathThe location on the Ambari Server where stack extensions exist.

The following are examples of valid values:/var/lib/ambari-server/resources/extensions
gpl.license.acceptedWhether user accepted GPL license.false
gzip.handler.jetty.enabledDetermines whether jetty Gzip compression is enabled or not.true
heartbeat.monitoring.intervalInterval for heartbeat presence checks.

The following are examples of valid values:60000600000
60000
http.cache-controlThe value that will be used to set the Cache-Control HTTP response header.no-store
http.charsetThe value that will be used to set the Character encoding to HTTP response header.utf-8
http.content-security-policyThe value that will be used to set the Content-Security-Policy HTTP response header.
http.pragmaThe value that will be used to set the PRAGMA HTTP response header.no-cache
http.strict-transport-securityWhen using SSL, this will be used to set the Strict-Transport-Security response header.max-age=31536000
http.x-content-type-optionsThe value that will be used to set the X-CONTENT-TYPE HTTP response header.nosniff
http.x-frame-optionsThe value that will be used to set the X-Frame-Options HTTP response header.DENY
http.x-xss-protectionThe value that will be used to set the X-XSS-Protection HTTP response header.1; mode=block
java.homeThe location of the JDK on the Ambari Agent hosts. If stack.java.home exists, that is only used by Ambari Server (or you can find that as ambari_java_home in the commandParams on the agent side)

The following are examples of valid values:/usr/jdk64/jdk1.8.0_112
jce.nameThe name of the JCE policy ZIP file. If stack.jce.name exists, that is only used by Ambari Server (or you can find that as ambari_jce_name in the commandParams on the agent side)

The following are examples of valid values:UnlimitedJCEPolicyJDK8.zip
jdk.nameThe name of the JDK installation binary. If stack.jdk.name exists, that is only used by Ambari Server (or you can find that as ambari_jdk_name in the commandParams on the agent side)

The following are examples of valid values:jdk-8u112-linux-x64.tar.gz
kdcserver.connection.check.timeoutThe timeout, in milliseconds, to wait when communicating with a Kerberos Key Distribution Center.10000
kerberos.check.jaas.configurationDetermines whether Kerberos-enabled Ambari deployments should use JAAS to validate login credentials.false
kerberos.keytab.cache.dirThe location on the Ambari Server where Kerberos keytabs are cached./var/lib/ambari-server/data/cache
kerberos.operation.retriesThe number of times failed Kerberos operations should be retried to execute.3
kerberos.operation.retry.timeoutThe time to wait (in seconds) between failed Kerberos operations retries.10
kerberos.operation.verify.kdc.trustValidate the trust of the SSL certificate provided by the KDC when performing Kerberos operations over SSL.true
ldap.sync.username.collision.behaviorDetermines how to handle username collision while updating from LDAP.

The following are examples of valid values:skipconvertadd
add
log4j.monitor.delayIndicates the delay, in milliseconds, for the log4j monitor to check for changes300000
logsearch.metadata.cache.expire.timeoutThe time, in hours, that the Ambari Server will hold Log File metadata in its internal cache before making a request to the LogSearch Portal to get the latest metadata.24
logsearch.portal.connect.timeoutThe time, in milliseconds, that the Ambari Server will wait while attempting to connect to the LogSearch Portal service.5000
logsearch.portal.external.addressAddress of an external LogSearch Portal service. (managed outside of Ambari) Using Ambari Credential store is required for this feature (credential: ‘logsearch.admin.credential’)
logsearch.portal.read.timeoutThe time, in milliseconds, that the Ambari Server will wait while attempting to read a response from the LogSearch Portal service.5000
messaging.threadpool.sizeThread pool size for spring messaging10
metadata.pathThe location on the Ambari Server where the stack resources exist.

The following are examples of valid values:/var/lib/ambari-server/resources/stacks
metrics.retrieval-service.cache.timeoutThe amount of time, in minutes, that JMX and REST metrics retrieved directly can remain in the cache.30
metrics.retrieval-service.request.ttlThe number of seconds to wait between issuing JMX or REST metric requests to the same endpoint. This property is used to throttle requests to the same URL being made too close together

This property is related to metrics.retrieval-service.request.ttl.enabled.
5
metrics.retrieval-service.request.ttl.enabledEnables throttling requests to the same endpoint within a fixed amount of time. This property will prevent Ambari from making new metric requests to update the cache for URLs which have been recently retrieved.

This property is related to metrics.retrieval-service.request.ttl.
true
mpacks.staging.pathThe Ambari Management Pack staging directory on the Ambari Server.

The following are examples of valid values:/var/lib/ambari-server/resources/mpacks
notification.dispatch.alert.script.directoryThe directory for scripts which are used by the alert notification dispatcher./var/lib/ambari-server/resources/scripts
packages.pre.installedDetermines whether Ambari Agent instances have already have the necessary stack software installedfalse
pam.configurationThe PAM configuration file.
property.mask.fileThe path of the file which lists the properties that should be masked from the api that returns ambari.properties
proxy.allowed.hostportsA comma-separated whitelist of host and port values which Ambari Server can use to determine if a proxy value is valid.*:*
recommendations.artifacts.lifetimeThe amount of time that Recommendation API data is kept on the Ambari Server file system. This is specified using a hdwmy syntax for pairing the value with a time unit (hours, days, weeks, months, years)

The following are examples of valid values:8h2w1m
1w
recommendations.artifacts.rollover.maxMaximum number of recommendations artifacts at a given time

The following are examples of valid values:5010100
100
recommendations.dirThe directory on the Ambari Server file system used for storing Recommendation API artifacts./var/run/ambari-server/stack-recommendations
recovery.disabled_componentsA comma-separated list of component names which are not included in automatic recovery attempts.

The following are examples of valid values:NAMENODE,ZOOKEEPER_SERVER
recovery.enabled_componentsA comma-separated list of component names which are included in automatic recovery attempts.

The following are examples of valid values:NAMENODE,ZOOKEEPER_SERVER
recovery.lifetime_max_countThe maximum number of recovery attempts of a failed component during the lifetime of an Ambari Agent instance. This is reset when the Ambari Agent is restarted.
recovery.max_countThe maximum number of recovery attempts of a failed component during a specified recovery window.
recovery.retry_intervalThe delay, in minutes, between automatic retry windows.
recovery.typeThe type of automatic recovery of failed services and components to use.

The following are examples of valid values:DEFAULTAUTO_STARTFULL
recovery.window_in_minutesThe length of a recovery window, in minutes, in which recovery attempts can be retried.

This property is related to recovery.max_count.
registration.threadpool.sizeThread pool size for agents registration10
repo.validation.suffixes.defaultThe suffixes to use when validating most types of repositories./repodata/repomd.xml
repo.validation.suffixes.ubuntuThe suffixes to use when validating Ubuntu repositories./dists/%s/Release
repositories.legacy-override.enabledThis property is used in specific testing circumstances only. Its use otherwise will lead to very unpredictable results with repository management and package installationfalse
resources.dirThe location on the Ambari Server where all resources exist, including common services, stacks, and scripts./var/lib/ambari-server/resources/
rolling.upgrade.skip.packages.prefixesA comma-separated list of packages which will be skipped during a stack upgrade.
security.agent.hostname.validateDetermines whether the Ambari Agent host names should be validated against a regular expression to ensure that they are well-formed.

WARNING: By setting this value to false, host names will not be validated, allowing a possible security vulnerability as described in CVE-2014-3582. See https://cwiki.apache.org/confluence/display/AMBARI/Ambari+Vulnerabilities for more information.
true
security.master.key.locationThe location on the Ambari Server of the master key file. This is the key to the master keystore.
security.master.keystore.locationThe location on the Ambari Server of the master keystore file.
security.password.policy.descriptionPassword policy description that is shown to users
security.password.policy.regexpDetermines Ambari user password policy. Passwords should match the regex.*
security.passwords.encryption.enabledWhether security password encryption is enabled or not. In case it is we store passwords in their own file(s); otherwise we store passwords in the Ambari credential store.false
security.server.cert_chain_nameThe name of the file located in the security.server.keys_dir directory containing the CA certificate chain used to verify certificates during 2-way SSL communications.ca_chain.pem
security.server.cert_nameThe name of the file located in the security.server.keys_dir directory where certificates will be generated when Ambari uses the openssl ca command.ca.crt
security.server.crt_passThe password for the keystores, truststores, and certificates. If not specified, then security.server.crt_pass_file should be used
security.server.crt_pass.lenThe length of the randomly generated password for keystores and truststores.50
security.server.crt_pass_fileThe filename which contains the password for the keystores, truststores, and certificates.pass.txt
security.server.csr_nameThe name of the certificate request file used when generating certificates.ca.csr
security.server.disabled.ciphersA list of cipher suites which are not strong enough to use and will be excluded when creating SSL connections.

The following are examples of valid values:SSL_RSA_WITH_RC4_128_MD5|SSL_RSA_WITH_RC4_12‌​8_MD5
security.server.disabled.protocolsThe list of protocols which should not be used when creating SSL connections.

The following are examples of valid values:TLSv1.1|TLSv1.2
security.server.key_nameThe name of the private key used to sign requests.ca.key
security.server.keys_dirThe directory on the Ambari Server where keystores are kept..
security.server.keystore_nameThe name of the keystore file, located in security.server.keys_dirkeystore.p12
security.server.keystore_typeThe type of the keystore file specified in security.server.key_name. Self-signed certificates can be PKCS12 while CA signed certificates are JKSPKCS12
security.server.one_way_ssl.portThe port that the Ambari Agents will use to communicate with the Ambari Server over SSL.8440
security.server.passphraseThe password to the Ambari Server to supply to new Ambari Agent hosts being bootstrapped.AMBARI_PASSPHRASE
security.server.passphrase_env_varAn environment variable which can be used to supply the Ambari Server password when bootstrapping new Ambari Agents.AMBARI_PASSPHRASE
security.server.tls.ephemeral_dh_key_sizeThe Ephemeral TLS Diffie-Hellman (DH) key size. Supported from Java 8.2048
security.server.truststore_nameThe name of the truststore file ambari uses to store trusted certificates. Located in security.server.keys_dirkeystore.p12
security.server.truststore_typeThe type of the truststore file specified in security.server.truststore_name. Self-signed certificates can be PKCS12 while CA signed certificates are JKSPKCS12
security.server.two_way_sslDetermines whether two-way SSL should be used between Ambari Server and Ambari Agents so that the agents must also use SSL.false
security.server.two_way_ssl.portThe port that the Ambari Server will use to communicate with the agents over SSL.8441
security.temporary.keystore.actibely.purgeDetermines whether the temporary keystore should have keys actively purged on a fixed internal. or only when requested after expiration.true
security.temporary.keystore.retention.minutesThe time, in minutes, that the temporary, in-memory credential store retains values.90
server.cache.isStale.enabledDetermines when the stale configuration cache is enabled. If disabled, then queries to determine if components need to be restarted will query the database directly.true
server.cache.isStale.expirationThe expiration time, in {@link TimeUnit#MINUTES}, that stale configuration information is cached.

This property is related to server.cache.isStale.enabled.
600
server.connection.max.idle.millisThe time, in milliseconds, that Ambari Agent connections can remain open and idle.900000
server.ecCacheSizeThe size of the cache which is used to hold current operations in memory until they complete.10000
server.execution.scheduler.isClusteredDetermines whether Quartz will use a clustered job scheduled when performing scheduled actions like rolling restarts.false
server.execution.scheduler.maxDbConnectionsThe number of concurrent database connections that the Quartz job scheduler can use.5
server.execution.scheduler.maxStatementsPerConnectionThe maximum number of prepared statements cached per database connection.120
server.execution.scheduler.maxThreadsThe number of threads that the Quartz job scheduler will use when executing scheduled jobs.5
server.execution.scheduler.misfire.toleration.minutesThe time, in minutes, that a scheduled job can be run after its missed scheduled execution time.480
server.execution.scheduler.start.delay.secondsThe delay, in seconds, that a Quartz job must wait before it starts.120
server.execution.scheduler.waitThe time, in seconds, that the Quartz execution scheduler will wait before checking for new commands to schedule, such as rolling restarts.1
server.hosts.mappingThe location on the Ambari Server of the file which is used for mapping host names.
server.hrcStatusSummary.cache.enabledDetermines whether an existing request's status is cached. This is enabled by default to prevent increases in database access when there are long running operations in progress.true
server.hrcStatusSummary.cache.expiryDurationThe expiration time, in minutes, of the request status cache.

This property is related to server.hrcStatusSummary.cache.enabled.
30
server.hrcStatusSummary.cache.sizeThe size of the cache which is used to hold a status of every operation in a request.

This property is related to server.hrcStatusSummary.cache.enabled.
10000
server.http.request.header.sizeThe size of the buffer to use, in bytes, for REST API HTTP header requests.65536
server.http.response.header.sizeThe size of the buffer to use, in bytes, for REST API HTTP header responses.65536
server.http.session.inactive_timeoutThe time, in seconds, that open HTTP sessions will remain valid while they are inactive.1800
server.jdbc.connection-poolThe connection pool manager to use for database connections. If using MySQL, then c3p0 is automatically chosen.

The following are examples of valid values:internalc3p0
internal
server.jdbc.connection-pool.acquisition-retry-attemptsThe number of times connections should be retried to be acquired from the database before giving up. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
30
server.jdbc.connection-pool.acquisition-retry-delayThe delay, in milliseconds, between connection acquisition attempts. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
1000
server.jdbc.connection-pool.acquisition-sizeThe number of connections that should be retrieved when the pool size must increase. This should be set higher than 1 since the assumption is that a pool that needs to grow should probably grow by more than 1. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
5
server.jdbc.connection-pool.idle-test-intervalThe number of seconds in between testing each idle connection in the connection pool for validity. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
7200
server.jdbc.connection-pool.max-ageThe maximum amount of time, in seconds, any connection, whether its been idle or active, should remain in the pool. This will terminate the connection after the expiration age and force new connections to be opened. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
0
server.jdbc.connection-pool.max-idle-timeThe maximum amount of time, in seconds, that an idle connection can remain in the pool. This should always be greater than the value returned from server.jdbc.connection-pool.max-idle-time-excess. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
14400
server.jdbc.connection-pool.max-idle-time-excessThe maximum amount of time, in seconds, that connections beyond the minimum pool size should remain in the pool. This should always be less than than the value returned from server.jdbc.connection-pool.max-idle-time. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
0
server.jdbc.connection-pool.max-sizeThe maximum number of connections that should exist in the database connection pool. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
32
server.jdbc.connection-pool.min-sizeThe minimum number of connections that should always exist in the database connection pool. Only used with c3p0.

This property is related to server.jdbc.connection-pool.
5
server.jdbc.database_nameThe name of the database.ambari
server.jdbc.driverThe name of the PostgresSQL JDBC JAR connector.org.postgresql.Driver
server.jdbc.generateTablesThe table generation strategy to use when initializing JPA.NONE
server.jdbc.postgres.schemaThe schema within a named PostgreSQL database where Ambari's tables, users, and constraints are stored.
server.jdbc.rca.driverThe PostgresSQL driver name for the RCA database.org.postgresql.Driver
server.jdbc.rca.urlThe full JDBC URL for connecting to the RCA database.jdbc:postgresql://{hostname}/ambarirca
server.jdbc.rca.user.nameThe user name for connecting to the database which stores RCA information.mapred
server.jdbc.rca.user.passwdThe password for the user when connecting to the database which stores RCA information.mapred
server.jdbc.user.nameThe user name used to login to the database.ambari
server.jdbc.user.passwdThe password for the user when logging into the database.bigdata
server.kerberos.action.threadpool.sizeThe number of threads to use when executing server-side Kerberos commands, such as generate keytabs.1
server.kerberos.finalize.timeoutThe timeout, in seconds, when finalizing Kerberos enable/disable/regenerate commands.600
server.locks.profilingEnable the profiling of internal locks.false
server.metrics.retrieval-service.thread.priorityThe priority of threads used by the service which retrieves JMX and REST metrics directly from their respective endpoints.5
server.metrics.retrieval-service.threadpool.size.coreThe core number of threads used to retrieve JMX and REST metrics directly from their respective endpoints.8
server.metrics.retrieval-service.threadpool.size.maxThe maximum number of threads used to retrieve JMX and REST metrics directly from their respective endpoints.16
server.metrics.retrieval-service.threadpool.worker.sizeThe number of queued requests allowed for JMX and REST metrics before discarding old requests which have not been fullfilled.160
server.operations.retry-attemptsThe number of retry attempts for failed API and blueprint operations.0
server.os_familyThe operating system family for all hosts in the cluster. This is used when bootstrapping agents and when enabling Kerberos.

The following are examples of valid values:redhatubuntu
server.os_typeThe operating system version for all hosts in the cluster. This is used when bootstrapping agents and when enabling Kerberos.

The following are examples of valid values:67
server.persistence.typeThe type of database connection being used. Unless using an embedded PostgresSQL server, then this should be remote.

The following are examples of valid values:localremote
local
server.pools.agent.command.publisher.sizeThe Agent command publisher pool. Affects degree of parallelization for generating the commands.5
server.pools.default.sizeConfigures size of the default JOIN Fork pool used for Streams.5
server.property-provider.threadpool.completion.timeoutThe maximum time, in milliseconds, that federated requests for data can execute before being terminated. Increasing this value could result in degraded performanc from the REST APIs.5000
server.property-provider.threadpool.size.coreThe core number of threads that will be used to retrieve data from federated datasources, such as remote JMX endpoints.8
server.property-provider.threadpool.size.maxThe maximum number of threads that will be used to retrieve data from federated datasources, such as remote JMX endpoints.16
server.property-provider.threadpool.worker.sizeThe maximum size of pending federated datasource requests, such as those to JMX endpoints, which can be queued before rejecting new requests.2147483647
server.requestlogs.namepatternThe pattern of request log file nameambari-access-yyyy_mm_dd.log
server.requestlogs.pathThe location on the Ambari Server where request logs can be created.
server.requestlogs.retaindaysThe number of days that request log would be retained.15
server.script.threadsThe number of threads that should be allocated to run external script.20
server.script.timeoutThe time, in milliseconds, until an external script is killed.10000
server.show.error.stacksShow or hide the error stacks on the error pagefalse
server.stage.command.execution_typeHow to execute commands in one stageSTAGE
server.stages.parallelDetermines whether operations in different execution requests can be run concurrently.true
server.startup.web.timeoutThe time, in seconds, that the ambari-server Python script will wait for Jetty to startup before returning an error code.50
server.task.timeoutThe time, in seconds, before a server-side operation is terminated.1200
server.timeline.metrics.cache.catchup.intervalThe time, in milliseconds, that Ambari Metrics intervals should use when extending the boundaries of the original request.

This property is related to server.timeline.metrics.cache.disabled.
300000
server.timeline.metrics.cache.connect.timeout.millisThe time, in milliseconds, to wait while attempting to connect to Ambari Metrics.

This property is related to server.timeline.metrics.cache.disabled.
5000
server.timeline.metrics.cache.disabledDetermines whether Ambari Metric data is cached.false
server.timeline.metrics.cache.entry.idle.secondsThe time, in seconds, that Ambari Metric data can remain in the cache without being accessed.

This property is related to server.timeline.metrics.cache.disabled.
1800
server.timeline.metrics.cache.entry.ttl.secondsThe time, in seconds, that Ambari Metric timeline data is cached by Ambari Server.

This property is related to server.timeline.metrics.cache.disabled.
3600
server.timeline.metrics.cache.heap.percentThe amount of heap on the Ambari Server dedicated to the caching values from Ambari Metrics. Measured as part of the total heap of Ambari Server.

This property is related to server.timeline.metrics.cache.disabled.
15%
server.timeline.metrics.cache.interval.read.timeout.millisThe time, in milliseconds, that requests to update stale metric data will wait while reading from Ambari Metrics. This allows for greater control by allowing stale values to be returned instead of waiting for Ambari Metrics to always populate responses with the latest data.

This property is related to server.timeline.metrics.cache.disabled.
10000
server.timeline.metrics.cache.read.timeout.millisThe time, in milliseconds, that initial requests to populate metric data will wait while reading from Ambari Metrics.

This property is related to server.timeline.metrics.cache.disabled.
10000
server.timeline.metrics.cache.use.custom.sizing.engineDetermines if a custom engine should be used to increase performance of calculating the current size of the cache for Ambari Metric data.

This property is related to server.timeline.metrics.cache.disabled.
true
server.timeline.metrics.https.enabledDetermines whether to use to SSL to connect to Ambari Metrics when retrieving metric data.false
server.tmp.dirThe location on the Ambari Server where temporary artifacts can be created./var/lib/ambari-server/tmp
server.version.fileThe full path to the file which contains the Ambari Server version. This is used to ensure that there is not a version mismatch between Ambari Agents and Ambari Server.

The following are examples of valid values:/var/lib/ambari-server/resources/version
server.version_definition.connect.timeout.millisThe time, in milliseconds, that requests to connect to a URL to retrieve Version Definition Files (VDF) will wait before being terminated.5000
server.version_definition.read.timeout.millisThe time, in milliseconds, that requests to read from a connected URL to retrieve Version Definition Files (VDF) will wait before being terminated.5000
shared.resources.dirThe location on the Ambari Server where resources are stored. This is exposed via HTTP in order for Ambari Agents to access them./usr/lib/ambari-server/lib/ambari_commons/resources
ssl.trustStore.passwordThe password to use when setting the javax.net.ssl.trustStorePassword property
ssl.trustStore.pathThe location of the truststore to use when setting the javax.net.ssl.trustStore property.
ssl.trustStore.typeThe type of truststore used by the javax.net.ssl.trustStoreType property.
stack.hooks.folderA location of hooks folder relative to resources folder.stack-hooks
stack.java.homeThe location of the JDK on the Ambari Agent hosts for stack services.

The following are examples of valid values:/usr/jdk64/jdk1.7.0_45
stack.java.versionJDK version of the stack, use in case of it differs from Ambari JDK version.

The following are examples of valid values:1.7
stack.jce.nameThe name of the JCE policy ZIP file for stack services.

The following are examples of valid values:UnlimitedJCEPolicyJDK7.zip
stack.jdk.nameThe name of the JDK installation binary for stack services.

The following are examples of valid values:jdk-7u45-linux-x64.tar.gz
stack.upgrade.auto.retry.check.interval.secsThe amount of time to wait, in seconds, between checking for upgrade tasks to be retried. This value is only applicable if stack.upgrade.auto.retry.timeout.mins is positive.

This property is related to stack.upgrade.auto.retry.timeout.mins.
20
stack.upgrade.auto.retry.command.details.to.ignoreA comma-separate list of upgrade tasks details to skip when retrying failed commands automatically."Execute HDFS Finalize"
stack.upgrade.auto.retry.command.names.to.ignoreA comma-separate list of upgrade tasks names to skip when retrying failed commands automatically."ComponentVersionCheckAction","FinalizeUpgradeAction"
stack.upgrade.auto.retry.timeout.minsThe amount of time to wait in order to retry a command during a stack upgrade when an agent loses communication. This value must be greater than the agent.task.timeout value.0
stack.upgrade.bypass.prechecksDetermines whether pre-upgrade checks will be skipped when performing a rolling or express stack upgrade.false
stack.upgrade.default.parallelismDefault value of max number of tasks to schedule in parallel for upgrades. Upgrade packs can override this value.100
stackadvisor.scriptThe location and name of the Python stack advisor script executed when configuring services./var/lib/ambari-server/resources/scripts/stack_advisor.py
stomp.max_buffer.message.sizeThe maximum size of a buffer for stomp message sending. Default is 5 MB.5242880
stomp.max_incoming.message.sizeThe maximum size of an incoming stomp text message. Default is 2 MB.2097152
subscription.registry.cache.sizeMaximal cache size for spring subscription registry.1500
topology.task.creation.parallelIndicates whether parallel topology task creation is enabledfalse
topology.task.creation.parallel.threadsThe number of threads to use for parallel topology task creation if enabled10
view.extract-after-cluster-configDrives view extraction in case of blueprint deployments; non-system views are deployed when cluster configuration is successfulfalse
view.extraction.threadpool.size.coreThe number of threads used to extract Ambari Views when Ambari Server is starting up.10
view.extraction.threadpool.size.maxThe maximum number of threads used to extract Ambari Views when Ambari Server is starting up.20
view.extraction.threadpool.timeoutThe time, in milliseconds, that non-core threads will live when extraction views on Ambari Server startup.100000
view.request.threadpool.size.maxThe maximum number of threads which will be allocated to handling REST API requests from embedded views. This value should be smaller than agent.threadpool.size.max

This property is related to agent.threadpool.size.max.
0
view.request.threadpool.timeoutThe time, milliseconds, that REST API requests from embedded views can wait if there are no threads available to service the view's request. Setting this too low can cause views to timeout.2000
views.additional.classpathAdditional class path added to each Ambari View. Comma separated jars or directories
views.ambari.request.connect.timeout.millisThe amount of time, in milliseconds, that a view will wait when trying to connect on HTTP(S) operations to the Ambari REST API.30000
views.ambari.request.read.timeout.millisThe amount of time, in milliseconds, that a view will wait before terminating an HTTP(S) read request to the Ambari REST API.45000
views.dirThe directory on the Ambari Server file system used for expanding Views and storing webapp work./var/lib/ambari-server/resources/views
views.directory.watcher.disableDetermines whether the view directory watcher service should be disabled.false
views.http.cache-controlThe value that will be used to set the Cache-Control HTTP response header for Ambari View requests.no-store
views.http.charsetThe value that will be used to set the Character encoding to HTTP response header for Ambari View requests.utf-8
views.http.content-security-policyThe value that will be used to set the Content-Security-Policy HTTP response header for Ambari View requests.
views.http.pragmaThe value that will be used to set the PRAGMA HTTP response header for Ambari View requests.no-cache
views.http.strict-transport-securityThe value that will be used to set the Strict-Transport-Security HTTP response header for Ambari View requests.max-age=31536000
views.http.x-content-type-optionsThe value that will be used to set the X-CONTENT-TYPE HTTP response header for Ambari View requests.nosniff
views.http.x-frame-optionsThe value that will be used to set the X-Frame-Options HTTP response header for Ambari View requests.SAMEORIGIN
views.http.x-xss-protectionThe value that will be used to set the X-XSS-Protection HTTP response header for Ambari View requests.1; mode=block
views.remove.undeployedDetermines whether remove undeployed views from the Ambari database.false
views.request.connect.timeout.millisThe amount of time, in milliseconds, that a view will wait when trying to connect on HTTP(S) operations to a remote resource.5000
views.request.read.timeout.millisThe amount of time, in milliseconds, that a view will wait before terminating an HTTP(S) read request.10000
views.validateDetermines whether to validate a View's configuration XML file against an XSD.false
webapp.dirThe Ambari Server webapp root directory.web

Baseline Values

As the size of a cluster grows, some of the default property values may no longer be sufficient. The below tables offer recommendations on the values of some configuration properties based on the size and usage of the cluster.

Alerts & Notifications

Property Name10 Hosts~50 Hosts~100 Hosts500+ Hosts
alerts.execution.scheduler.threadpool.size.core2244
alerts.execution.scheduler.threadpool.size.max2288
alerts.execution.scheduler.threadpool.worker.size4002000400020000
alerts.cache.enabledfalsefalsefalsetrue
alerts.cache.flush.interval10101010
alerts.cache.size5000050000100000100000

Jetty API & Agent Thread Pools

Property Name10 Hosts~50 Hosts~100 Hosts500+ Hosts
client.threadpool.size.max25355065
agent.threadpool.size.max253575100

Database And Persistence

In addition to the static database connection properties, it's possible to supply custom properties for both EclipseLink and the database driver through ambari.properties.

Database Driver

Using the server.jdbc.properties. prefix, it's possible to supply specific properties to the database driver being used by Ambari. These properties do not affect JPA or any of the persistence-unit operations. They are solely to govern the behavior of the database driver.

server.jdbc.properties.lockTimeout=15000
server.jdbc.properties.loginTimeout=15000

Persistence Unit

EclipseLink properties can also be configured using a prefix of server.persistence.properties.. The EclipseLink properties should be defined in their entirety with the prefix prepended in front of them.

server.persistence.properties.eclipselink.jdbc.batch-writing.size=25
server.persistence.properties.eclipselink.profiler=QueryMonitor