title: Server Properties category: configuration order: 4

Below are properties set in accumulo.properties or the Accumulo shell that configure Accumulo servers (i.e tablet server, master, etc). Properties labeled ‘Experimental’ could be part of an incomplete feature or have a higher risk of changing in the future.

PropertyDescription
gc.*Properties in this category affect the behavior of the accumulo garbage collector.
gc.cycle.delayTime between garbage collection cycles. In each cycle, old RFiles or write-ahead logs no longer in use are removed from the filesystem.
type: TIMEDURATION, zk mutable: yes, default value: 5m
gc.cycle.startTime to wait before attempting to garbage collect any old RFiles or write-ahead logs.
type: TIMEDURATION, zk mutable: yes, default value: 30s
gc.port.clientThe listening port for the garbage collector's monitor service
type: PORT, zk mutable: yes but requires restart of the gc, default value: 9998
gc.threads.deleteThe number of threads used to delete RFiles and write-ahead logs
type: COUNT, zk mutable: yes, default value: 16
gc.trace.percentPercent of gc cycles to trace
type: FRACTION, zk mutable: yes, default value: 0.01
gc.trash.ignoreDo not use the Trash, even if it is configured.
type: BOOLEAN, zk mutable: yes, default value: false
general.*Properties in this category affect the behavior of accumulo overall, but do not have to be consistent throughout a cloud.
general.classpathsDeprecated. This property is deprecated since 2.0.0. The class path should instead be configured by the launch environment (for example, accumulo-env.sh). A list of all of the places to look for a class. Order does matter, as it will look for the jar starting in the first location to the last. Supports full regex on filename alone.
type: STRING, zk mutable: no, default value: empty
general.custom.*Prefix to be used for user defined system-wide properties. This may be particularly useful for system-wide configuration for various user-implementations of pluggable Accumulo features, such as the balancer or volume chooser.
general.delegation.token.lifetimeThe length of time that delegation tokens and secret keys are valid
type: TIMEDURATION, zk mutable: no, default value: 7d
general.delegation.token.update.intervalThe length of time between generation of new secret keys
type: TIMEDURATION, zk mutable: no, default value: 1d
general.dynamic.classpathsA list of all of the places where changes in jars or classes will force a reload of the classloader.
type: STRING, zk mutable: no, default value: $ACCUMULO_HOME/lib/ext/[^.].*.jar
general.kerberos.keytabPath to the kerberos keytab to use. Leave blank if not using kerberoized hdfs
type: PATH, zk mutable: no, default value: empty
general.kerberos.principalName of the kerberos principal to use. _HOST will automatically be replaced by the machines hostname in the hostname portion of the principal. Leave blank if not using kerberoized hdfs
type: STRING, zk mutable: no, default value: empty
general.kerberos.renewal.periodThe amount of time between attempts to perform Kerberos ticket renewals. This does not equate to how often tickets are actually renewed (which is performed at 80% of the ticket lifetime).
type: TIMEDURATION, zk mutable: no, default value: 30s
general.legacy.metricsUse the old metric infrastructure configured by accumulo-metrics.xml, instead of Hadoop Metrics2
type: BOOLEAN, zk mutable: no, default value: false
general.max.scanner.retry.periodThe maximum amount of time that a Scanner should wait before retrying a failed RPC
type: TIMEDURATION, zk mutable: no, default value: 5s
general.rpc.server.typeExperimental. Type of Thrift server to instantiate, see org.apache.accumulo.server.rpc.ThriftServerType for more information. Only useful for benchmarking thrift servers
type: STRING, zk mutable: no, default value: empty
general.rpc.timeoutTime to wait on I/O for simple, short RPC calls
type: TIMEDURATION, zk mutable: no, default value: 120s
general.security.credential.provider.pathsComma-separated list of paths to CredentialProviders
type: STRING, zk mutable: no, default value: empty
general.server.message.size.maxThe maximum size of a message that can be sent to a server.
type: BYTES, zk mutable: no, default value: 1G
general.server.simpletimer.threadpool.sizeThe number of threads to use for server-internal scheduled tasks
type: COUNT, zk mutable: no, default value: 1
general.vfs.cache.dirDirectory to use for the vfs cache. The cache will keep a soft reference to all of the classes loaded in the VM. This should be on local disk on each node with sufficient space. It defaults to ${java.io.tmpdir}/accumulo-vfs-cache-${user.name}
type: ABSOLUTEPATH, zk mutable: no, default value: ${java.io.tmpdir}/accumulo-vfs-cache-${user.name}
general.vfs.classpathsConfiguration for a system level vfs classloader. Accumulo jar can be configured here and loaded out of HDFS.
type: STRING, zk mutable: no, default value: empty
general.vfs.context.classpath.*Properties in this category are define a classpath. These properties start with the category prefix, followed by a context name. The value is a comma separated list of URIs. Supports full regex on filename alone. For example, general.vfs.context.classpath.cx1=hdfs://nn1:9902/mylibdir/*.jar. You can enable post delegation for a context, which will load classes from the context first instead of the parent first. Do this by setting general.vfs.context.classpath.<name>.delegation=post, where <name> is your context name. If delegation is not specified, it defaults to loading from parent classloader first.
general.volume.chooserExperimental. The class that will be used to select which volume will be used to create new files.
type: CLASSNAME, zk mutable: no, default value: {% jlink -f org.apache.accumulo.server.fs.RandomVolumeChooser %}
instance.*Properties in this category must be consistent throughout a cloud. This is enforced and servers won't be able to communicate if these differ.
instance.crypto.opts.*Experimental. Properties related to on-disk file encryption.
instance.crypto.opts.sensitive.*Experimental. Sensitive properties related to on-disk file encryption.
instance.crypto.serviceExperimental. The class which executes on-disk file encryption. The default does nothing. To enable encryption, replace this classname with an implementation of theorg.apache.accumulo.core.spi.crypto.CryptoService interface.
type: CLASSNAME, zk mutable: no, default value: {% jlink -f org.apache.accumulo.core.cryptoImpl.NoCryptoService %}
instance.dfs.dirDeprecated. This property is deprecated since 1.6.0. HDFS directory in which accumulo instance will run. Do not change after accumulo is initialized.
type: ABSOLUTEPATH, zk mutable: no, default value: /accumulo
instance.dfs.uriDeprecated. This property is deprecated since 1.6.0. A url accumulo should use to connect to DFS. If this is empty, accumulo will obtain this information from the hadoop configuration. This property will only be used when creating new files if instance.volumes is empty. After an upgrade to 1.6.0 Accumulo will start using absolute paths to reference files. Files created before a 1.6.0 upgrade are referenced via relative paths. Relative paths will always be resolved using this config (if empty using the hadoop config).
type: URI, zk mutable: no, default value: empty
instance.rpc.sasl.allowed.host.impersonationOne-line configuration property controlling the network locations (hostnames) that are allowed to impersonate other users
type: STRING, zk mutable: no, default value: empty
instance.rpc.sasl.allowed.user.impersonationOne-line configuration property controlling what users are allowed to impersonate other users
type: STRING, zk mutable: no, default value: empty
instance.rpc.sasl.enabledConfigures Thrift RPCs to require SASL with GSSAPI which supports Kerberos authentication. Mutually exclusive with SSL RPC configuration.
type: BOOLEAN, zk mutable: no, default value: false
instance.rpc.ssl.clientAuthRequire clients to present certs signed by a trusted root
type: BOOLEAN, zk mutable: no, default value: false
instance.rpc.ssl.enabledUse SSL for socket connections from clients and among accumulo services. Mutually exclusive with SASL RPC configuration.
type: BOOLEAN, zk mutable: no, default value: false
instance.secretA secret unique to a given instance that all servers must know in order to communicate with one another. It should be changed prior to the initialization of Accumulo. To change it after Accumulo has been initialized, use the ChangeSecret tool and then update accumulo.properties everywhere. Before using the ChangeSecret tool, make sure Accumulo is not running and you are logged in as the user that controls Accumulo files in HDFS. To use the ChangeSecret tool, run the command: ./bin/accumulo org.apache.accumulo.server.util.ChangeSecret
type: STRING, zk mutable: no, default value: DEFAULT
instance.security.authenticatorThe authenticator class that accumulo will use to determine if a user has privilege to perform an action
type: CLASSNAME, zk mutable: no, default value: {% jlink -f org.apache.accumulo.server.security.handler.ZKAuthenticator %}
instance.security.authorizorThe authorizor class that accumulo will use to determine what labels a user has privilege to see
type: CLASSNAME, zk mutable: no, default value: {% jlink -f org.apache.accumulo.server.security.handler.ZKAuthorizor %}
instance.security.permissionHandlerThe permission handler class that accumulo will use to determine if a user has privilege to perform an action
type: CLASSNAME, zk mutable: no, default value: {% jlink -f org.apache.accumulo.server.security.handler.ZKPermHandler %}
instance.volumesA comma separated list of dfs uris to use. Files will be stored across these filesystems. If this is empty, then instance.dfs.uri will be used. After adding uris to this list, run ‘accumulo init --add-volume’ and then restart tservers. If entries are removed from this list then tservers will need to be restarted. After a uri is removed from the list Accumulo will not create new files in that location, however Accumulo can still reference files created at that location before the config change. To use a comma or other reserved characters in a URI use standard URI hex encoding. For example replace commas with %2C.
type: STRING, zk mutable: no, default value: empty
instance.volumes.replacementsSince accumulo stores absolute URIs changing the location of a namenode could prevent Accumulo from starting. The property helps deal with that situation. Provide a comma separated list of uri replacement pairs here if a namenode location changes. Each pair should be separated with a space. For example, if hdfs://nn1 was replaced with hdfs://nnA and hdfs://nn2 was replaced with hdfs://nnB, then set this property to ‘hdfs://nn1 hdfs://nnA,hdfs://nn2 hdfs://nnB’ Replacements must be configured for use. To see which volumes are currently in use, run ‘accumulo admin volumes -l’. To use a comma or other reserved characters in a URI use standard URI hex encoding. For example replace commas with %2C.
type: STRING, zk mutable: no, default value: empty
instance.zookeeper.hostComma separated list of zookeeper servers
type: HOSTLIST, zk mutable: no, default value: localhost:2181
instance.zookeeper.timeoutZookeeper session timeout; max value when represented as milliseconds should be no larger than 2147483647
type: TIMEDURATION, zk mutable: no, default value: 30s
master.*Properties in this category affect the behavior of the master server
master.bulk.rename.threadpool.sizeThe number of threads to use when moving user files to bulk ingest directories under accumulo control
type: COUNT, zk mutable: yes, default value: 20
master.bulk.retriesThe number of attempts to bulk import a RFile before giving up.
type: COUNT, zk mutable: yes, default value: 3
master.bulk.threadpool.sizeThe number of threads to use when coordinating a bulk import.
type: COUNT, zk mutable: yes, default value: 5
master.bulk.timeoutThe time to wait for a tablet server to process a bulk import request
type: TIMEDURATION, zk mutable: yes, default value: 5m
master.bulk.tserver.regexRegular expression that defines the set of Tablet Servers that will perform bulk imports
type: STRING, zk mutable: yes, default value: empty
master.fate.threadpool.sizeThe number of threads used to run fault-tolerant executions (FATE). These are primarily table operations like merge.
type: COUNT, zk mutable: yes, default value: 4
master.lease.recovery.intervalThe amount of time to wait after requesting a write-ahead log to be recovered
type: TIMEDURATION, zk mutable: yes, default value: 5s
master.metadata.suspendableAllow tablets for the accumulo.metadata table to be suspended via table.suspend.duration.
type: BOOLEAN, zk mutable: yes, default value: false
master.port.clientThe port used for handling client connections on the master
type: PORT, zk mutable: yes but requires restart of the master, default value: 9999
master.recovery.delayWhen a tablet server's lock is deleted, it takes time for it to completely quit. This delay gives it time before log recoveries begin.
type: TIMEDURATION, zk mutable: yes, default value: 10s
master.replication.coordinator.minthreadsMinimum number of threads dedicated to answering coordinator requests
type: COUNT, zk mutable: yes, default value: 4
master.replication.coordinator.portPort for the replication coordinator service
type: PORT, zk mutable: yes, default value: 10001
master.replication.coordinator.threadcheck.timeThe time between adjustments of the coordinator thread pool
type: TIMEDURATION, zk mutable: yes, default value: 5s
master.replication.status.scan.intervalAmount of time to sleep before scanning the status section of the replication table for new data
type: TIMEDURATION, zk mutable: yes, default value: 30s
master.server.threadcheck.timeThe time between adjustments of the server thread pool.
type: TIMEDURATION, zk mutable: yes, default value: 1s
master.server.threads.minimumThe minimum number of threads to use to handle incoming requests.
type: COUNT, zk mutable: yes, default value: 20
master.status.threadpool.sizeThe number of threads to use when fetching the tablet server status for balancing. Zero indicates an unlimited number of threads will be used.
type: COUNT, zk mutable: yes, default value: 0
master.tablet.balancerThe balancer class that accumulo will use to make tablet assignment and migration decisions.
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.server.master.balancer.TableLoadBalancer %}
master.walog.closer.implementationA class that implements a mechanism to steal write access to a write-ahead log
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.server.master.recovery.HadoopLogCloser %}
monitor.*Properties in this category affect the behavior of the monitor web server.
monitor.lock.check.intervalThe amount of time to sleep between checking for the Montior ZooKeeper lock
type: TIMEDURATION, zk mutable: no, default value: 5s
monitor.port.clientThe listening port for the monitor's http service
type: PORT, zk mutable: no, default value: 9995
monitor.port.log4jThe listening port for the monitor's log4j logging collection.
type: PORT, zk mutable: no, default value: 4560
monitor.resources.externalA JSON Map of Strings. Each String should be an HTML tag of an external resource (JS or CSS) to be imported by the Monitor. Be sure to wrap with CDATA tags. If this value is set, all of the external resources in the <head> tag of the Monitor will be replaced with the tags set here. Be sure the jquery tag is first since other scripts will depend on it. The resources that are used by default can be seen in accumulo/server/monitor/src/main/resources/templates/default.ftl
type: STRING, zk mutable: no, default value: empty
monitor.ssl.exclude.ciphersA comma-separated list of disallowed SSL Ciphers, see monitor.ssl.include.ciphers to allow ciphers
type: STRING, zk mutable: no, default value: empty
monitor.ssl.include.ciphersA comma-separated list of allows SSL Ciphers, see monitor.ssl.exclude.ciphers to disallow ciphers
type: STRING, zk mutable: no, default value: empty
monitor.ssl.include.protocolsA comma-separate list of allowed SSL protocols
type: STRING, zk mutable: no, default value: TLSv1.2
monitor.ssl.keyPasswordOptional: the password for the private key in the keyStore. When not provided, this defaults to the keystore password.
type: STRING, zk mutable: no, default value: empty
monitor.ssl.keyStoreThe keystore for enabling monitor SSL.
type: PATH, zk mutable: no, default value: empty
monitor.ssl.keyStorePasswordThe keystore password for enabling monitor SSL.
type: STRING, zk mutable: no, default value: empty
monitor.ssl.keyStoreTypeType of SSL keystore
type: STRING, zk mutable: no, default value: jks
monitor.ssl.trustStoreThe truststore for enabling monitor SSL.
type: PATH, zk mutable: no, default value: empty
monitor.ssl.trustStorePasswordThe truststore password for enabling monitor SSL.
type: STRING, zk mutable: no, default value: empty
monitor.ssl.trustStoreTypeType of SSL truststore
type: STRING, zk mutable: no, default value: jks
replication.*Properties in this category affect the replication of data to other Accumulo instances.
replication.driver.delayAmount of time to wait before the replication work loop begins in the master.
type: TIMEDURATION, zk mutable: yes, default value: 0s
replication.max.unit.sizeMaximum size of data to send in a replication message
type: BYTES, zk mutable: yes, default value: 64M
replication.max.work.queueUpper bound of the number of files queued for replication
type: COUNT, zk mutable: yes, default value: 1000
replication.nameName of this cluster with respect to replication. Used to identify this instance from other peers
type: STRING, zk mutable: yes, default value: empty
replication.peer.*Properties in this category control what systems data can be replicated to
replication.peer.keytab.*The keytab to use when authenticating with the given peer
replication.peer.password.*The password to provide when authenticating with the given peer
replication.peer.user.*The username to provide when authenticating with the given peer
replication.receipt.service.portListen port used by thrift service in tserver listening for replication
type: PORT, zk mutable: yes, default value: 10002
replication.receiver.min.threadsMinimum number of threads for replication
type: COUNT, zk mutable: yes, default value: 1
replication.receiver.threadcheck.timeThe time between adjustments of the replication thread pool.
type: TIMEDURATION, zk mutable: yes, default value: 30s
replication.rpc.timeoutAmount of time for a single replication RPC call to last before failing the attempt. See replication.work.attempts.
type: TIMEDURATION, zk mutable: yes, default value: 2m
replication.trace.percentThe sampling percentage to use for replication traces
type: FRACTION, zk mutable: yes, default value: 0.1
replication.work.assignerReplication WorkAssigner implementation to use
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.master.replication.UnorderedWorkAssigner %}
replication.work.assignment.sleepAmount of time to sleep between replication work assignment
type: TIMEDURATION, zk mutable: yes, default value: 30s
replication.work.attemptsNumber of attempts to try to replicate some data before giving up and letting it naturally be retried later
type: COUNT, zk mutable: yes, default value: 10
replication.work.processor.delayAmount of time to wait before first checking for replication work, not useful outside of tests
type: TIMEDURATION, zk mutable: yes, default value: 0s
replication.work.processor.periodAmount of time to wait before re-checking for replication work, not useful outside of tests
type: TIMEDURATION, zk mutable: yes, default value: 0s
replication.worker.threadsSize of the threadpool that each tabletserver devotes to replicating data
type: COUNT, zk mutable: yes, default value: 4
rpc.*Properties in this category related to the configuration of SSL keys for RPC. See also instance.ssl.enabled
rpc.javax.net.ssl.keyStorePath of the keystore file for the server's private SSL key
type: PATH, zk mutable: no, default value: empty
rpc.javax.net.ssl.keyStorePasswordPassword used to encrypt the SSL private keystore. Leave blank to use the Accumulo instance secret
type: STRING, zk mutable: no, default value: empty
rpc.javax.net.ssl.keyStoreTypeType of SSL keystore
type: STRING, zk mutable: no, default value: jks
rpc.javax.net.ssl.trustStorePath of the truststore file for the root cert
type: PATH, zk mutable: no, default value: empty
rpc.javax.net.ssl.trustStorePasswordPassword used to encrypt the SSL truststore. Leave blank to use no password
type: STRING, zk mutable: no, default value: empty
rpc.javax.net.ssl.trustStoreTypeType of SSL truststore
type: STRING, zk mutable: no, default value: jks
rpc.sasl.qopThe quality of protection to be used with SASL. Valid values are ‘auth’, ‘auth-int’, and ‘auth-conf’
type: STRING, zk mutable: no, default value: auth
rpc.ssl.cipher.suitesComma separated list of cipher suites that can be used by accepted connections
type: STRING, zk mutable: no, default value: empty
rpc.ssl.client.protocolThe protocol used to connect to a secure server, must be in the list of enabled protocols on the server side (rpc.ssl.server.enabled.protocols)
type: STRING, zk mutable: no, default value: TLSv1.2
rpc.ssl.server.enabled.protocolsComma separated list of protocols that can be used to accept connections
type: STRING, zk mutable: no, default value: TLSv1.2
rpc.useJsseUse JSSE system properties to configure SSL rather than the rpc.javax.net.ssl.* Accumulo properties
type: BOOLEAN, zk mutable: no, default value: false
table.*Properties in this category affect tablet server treatment of tablets, but can be configured on a per-table basis. Setting these properties in accumulo.properties will override the default globally for all tables and not any specific table. However, both the default and the global setting can be overridden per table using the table operations API or in the shell, which sets the overridden value in zookeeper. Restarting accumulo tablet servers after setting these properties in accumulo.properties will cause the global setting to take effect. However, you must use the API or the shell to change properties in zookeeper that are set on a table.
table.balancerThis property can be set to allow the LoadBalanceByTable load balancer to change the called Load Balancer for this table
type: STRING, zk mutable: yes, default value: org.apache.accumulo.server.master.balancer.DefaultLoadBalancer
table.bloom.enabledUse bloom filters on this table.
type: BOOLEAN, zk mutable: yes, default value: false
table.bloom.error.rateBloom filter error rate.
type: FRACTION, zk mutable: yes, default value: 0.5%
table.bloom.hash.typeThe bloom filter hash type
type: STRING, zk mutable: yes, default value: murmur
table.bloom.key.functorA function that can transform the key prior to insertion and check of bloom filter. org.apache.accumulo.core.file.keyfunctor.RowFunctor, org.apache.accumulo.core.file.keyfunctor.ColumnFamilyFunctor, and org.apache.accumulo.core.file.keyfunctor.ColumnQualifierFunctor are allowable values. One can extend any of the above mentioned classes to perform specialized parsing of the key.
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.core.file.keyfunctor.RowFunctor %}
table.bloom.load.thresholdThis number of seeks that would actually use a bloom filter must occur before a RFile's bloom filter is loaded. Set this to zero to initiate loading of bloom filters when a RFile is opened.
type: COUNT, zk mutable: yes, default value: 1
table.bloom.sizeBloom filter size, as number of keys.
type: COUNT, zk mutable: yes, default value: 1048576
table.cache.block.enableDetermines whether data block cache is enabled for a table.
type: BOOLEAN, zk mutable: yes, default value: false
table.cache.index.enableDetermines whether index block cache is enabled for a table.
type: BOOLEAN, zk mutable: yes, default value: true
table.classpath.contextPer table classpath context
type: STRING, zk mutable: yes, default value: empty
table.compaction.major.everything.idleAfter a tablet has been idle (no mutations) for this time period it may have all of its RFiles compacted into one. There is no guarantee an idle tablet will be compacted. Compactions of idle tablets are only started when regular compactions are not running. Idle compactions only take place for tablets that have one or more RFiles.
type: TIMEDURATION, zk mutable: yes, default value: 1h
table.compaction.major.ratioMinimum ratio of total input size to maximum input RFile size for running a major compaction. When adjusting this property you may want to also adjust table.file.max. Want to avoid the situation where only merging minor compactions occur.
type: FRACTION, zk mutable: yes, default value: 3
table.compaction.minor.idleAfter a tablet has been idle (no mutations) for this time period it may have its in-memory map flushed to disk in a minor compaction. There is no guarantee an idle tablet will be compacted.
type: TIMEDURATION, zk mutable: yes, default value: 5m
table.compaction.minor.logs.thresholdWhen there are more than this many write-ahead logs against a tablet, it will be minor compacted. See comment for property tserver.memory.maps.max
type: COUNT, zk mutable: yes, default value: 3
table.compaction.minor.merge.file.size.maxThe max RFile size used for a merging minor compaction. The default value of 0 disables a max file size.
type: BYTES, zk mutable: yes, default value: 0
table.constraint.*Properties in this category are per-table properties that add constraints to a table. These properties start with the category prefix, followed by a number, and their values correspond to a fully qualified Java class that implements the Constraint interface.
For example:
table.constraint.1 = org.apache.accumulo.core.constraints.MyCustomConstraint
and:
table.constraint.2 = my.package.constraints.MySecondConstraint
table.custom.*Prefix to be used for user defined arbitrary properties.
table.delete.behaviorExperimental. This determines what action to take when a delete marker is seen. Valid values are process and fail with process being the default. When set to process, deletes will supress data. When set to fail, any deletes seen will cause an exception. The purpose of fail is to support tables that never delete data and need fast seeks within the timestamp range of a column. When setting this to fail, also consider configuring the org.apache.accumulo.core.constraints.NoDeleteConstraint constraint.
type: STRING, zk mutable: yes, default value: process
table.durabilityThe durability used to write to the write-ahead log. Legal values are: none, which skips the write-ahead log; log, which sends the data to the write-ahead log, but does nothing to make it durable; flush, which pushes data to the file system; and sync, which ensures the data is written to disk.
type: DURABILITY, zk mutable: yes, default value: sync
table.failures.ignoreIf you want queries for your table to hang or fail when data is missing from the system, then set this to false. When this set to true missing data will be reported but queries will still run possibly returning a subset of the data.
type: BOOLEAN, zk mutable: yes, default value: false
table.file.blocksizeThe HDFS block size used when writing RFiles. When set to 0B, the value/defaults of HDFS property ‘dfs.block.size’ will be used.
type: BYTES, zk mutable: yes, default value: 0B
table.file.compress.blocksizeThe maximum size of data blocks in RFiles before they are compressed and written.
type: BYTES, zk mutable: yes, default value: 100K
table.file.compress.blocksize.indexThe maximum size of index blocks in RFiles before they are compressed and written.
type: BYTES, zk mutable: yes, default value: 128K
table.file.compress.typeCompression algorithm used on index and data blocks before they are written. Possible values: zstd, gz, snappy, lzo, none
type: STRING, zk mutable: yes, default value: gz
table.file.maxThe maximum number of RFiles each tablet in a table can have. When adjusting this property you may want to consider adjusting table.compaction.major.ratio also. Setting this property to 0 will make it default to tserver.scan.files.open.max-1, this will prevent a tablet from having more RFiles than can be opened. Setting this property low may throttle ingest and increase query performance.
type: COUNT, zk mutable: yes, default value: 15
table.file.replicationThe number of replicas for a table's RFiles in HDFS. When set to 0, HDFS defaults are used.
type: COUNT, zk mutable: yes, default value: 0
table.file.summary.maxSizeThe maximum size summary that will be stored. The number of RFiles that had summary data exceeding this threshold is reported by Summary.getFileStatistics().getLarge(). When adjusting this consider the expected number RFiles with summaries on each tablet server and the summary cache size.
type: BYTES, zk mutable: yes, default value: 256K
table.file.typeChange the type of file a table writes
type: STRING, zk mutable: yes, default value: rf
table.formatterThe Formatter class to apply on results in the shell
type: STRING, zk mutable: yes, default value: org.apache.accumulo.core.util.format.DefaultFormatter
table.group.*Properties in this category are per-table properties that define locality groups in a table. These properties start with the category prefix, followed by a name, followed by a period, and followed by a property for that group.
For example table.group.group1=x,y,z sets the column families for a group called group1. Once configured, group1 can be enabled by adding it to the list of groups in the table.groups.enabled property.
Additional group options may be specified for a named group by setting table.group.<name>.opt.<key>=<value>.
table.groups.enabledA comma separated list of locality group names to enable for this table.
type: STRING, zk mutable: yes, default value: empty
table.interepreterThe ScanInterpreter class to apply on scan arguments in the shell
type: STRING, zk mutable: yes, default value: org.apache.accumulo.core.util.interpret.DefaultScanInterpreter
table.iterator.*Properties in this category specify iterators that are applied at various stages (scopes) of interaction with a table. These properties start with the category prefix, followed by a scope (minc, majc, scan, etc.), followed by a period, followed by a name, as in table.iterator.scan.vers, or table.iterator.scan.custom. The values for these properties are a number indicating the ordering in which it is applied, and a class name such as:
table.iterator.scan.vers = 10,org.apache.accumulo.core.iterators.VersioningIterator
These iterators can take options if additional properties are set that look like this property, but are suffixed with a period, followed by ‘opt’ followed by another period, and a property name.
For example, table.iterator.minc.vers.opt.maxVersions = 3
table.iterator.majc.*Convenience prefix to find options for the majc iterator scope
table.iterator.minc.*Convenience prefix to find options for the minc iterator scope
table.iterator.scan.*Convenience prefix to find options for the scan iterator scope
table.majc.compaction.strategyA customizable major compaction strategy.
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.tserver.compaction.DefaultCompactionStrategy %}
table.majc.compaction.strategy.opts.*Properties in this category are used to configure the compaction strategy.
table.replicationIs replication enabled for the given table
type: BOOLEAN, zk mutable: yes, default value: false
table.replication.target.*Enumerate a mapping of other systems which this table should replicate their data to. The key suffix is the identifying cluster name and the value is an identifier for a location on the target system, e.g. the ID of the table on the target to replicate to
table.samplerThe name of a class that implements org.apache.accumulo.core.Sampler. Setting this option enables storing a sample of data which can be scanned. Always having a current sample can useful for query optimization and data comprehension. After enabling sampling for an existing table, a compaction is needed to compute the sample for existing data. The compact command in the shell has an option to only compact RFiles without sample data.
type: CLASSNAME, zk mutable: yes, default value: empty
table.sampler.opt.*The property is used to set options for a sampler. If a sample had two options like hasher and modulous, then the two properties table.sampler.opt.hasher=${hash algorithm} and table.sampler.opt.modulous=${mod} would be set.
table.scan.dispatcherThis class is used to dynamically dispatch scans to configured scan executors. Configured classes must implement {% jlink org.apache.accumulo.core.spi.scan.ScanDispatcher %} See [scan executors]({% durl administration/scan-executors %}) for an overview of why and how to use this property. This property is ignored for the root and metadata table. The metadata table always dispatches to a scan executor named meta.
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.core.spi.scan.SimpleScanDispatcher %}
table.scan.dispatcher.opts.*Options for the table scan dispatcher
table.scan.max.memoryThe maximum amount of memory that will be used to cache results of a client query/scan. Once this limit is reached, the buffered data is sent to the client.
type: BYTES, zk mutable: yes, default value: 512K
table.security.scan.visibility.defaultThe security label that will be assumed at scan time if an entry does not have a visibility expression.
Note: An empty security label is displayed as []. The scan results will show an empty visibility even if the visibility from this setting is applied to the entry.
CAUTION: If a particular key has an empty security label AND its table's default visibility is also empty, access will ALWAYS be granted for users with permission to that table. Additionally, if this field is changed, all existing data with an empty visibility label will be interpreted with the new label on the next scan.
type: STRING, zk mutable: yes, default value: empty
table.split.endrow.size.maxMaximum size of end row
type: BYTES, zk mutable: yes, default value: 10K
table.split.thresholdA tablet is split when the combined size of RFiles exceeds this amount.
type: BYTES, zk mutable: yes, default value: 1G
table.summarizer.*Prefix for configuring summarizers for a table. Using this prefix multiple summarizers can be configured with options for each one. Each summarizer configured should have a unique id, this id can be anything. To add a summarizer set table.summarizer.<unique id>=<summarizer class name>. If the summarizer has options, then for each option set table.summarizer.<unique id>.opt.<key>=<value>.
table.suspend.durationFor tablets belonging to this table: When a tablet server dies, allow the tablet server this duration to revive before reassigning its tablets to other tablet servers.
type: TIMEDURATION, zk mutable: yes, default value: 0s
table.walog.enabledDeprecated. This setting is deprecated since 1.7.0. Use table.durability=none instead.
type: BOOLEAN, zk mutable: yes, default value: true
trace.*Properties in this category affect the behavior of distributed tracing.
trace.passwordThe password for the user used to store distributed traces
type: STRING, zk mutable: no, default value: secret
trace.port.clientThe listening port for the trace server
type: PORT, zk mutable: no, default value: 12234
trace.span.receiver.*Prefix for span receiver configuration properties
trace.span.receiversA list of span receiver classes to send trace spans
type: CLASSNAMELIST, zk mutable: no, default value: org.apache.accumulo.tracer.ZooTraceClient
trace.tableThe name of the table to store distributed traces
type: STRING, zk mutable: no, default value: trace
trace.token.property.*The prefix used to create a token for storing distributed traces. For each property required by trace.token.type, place this prefix in front of it.
trace.token.typeAn AuthenticationToken type supported by the authorizer
type: CLASSNAME, zk mutable: no, default value: {% jlink -f org.apache.accumulo.core.client.security.tokens.PasswordToken %}
trace.userThe name of the user to store distributed traces
type: STRING, zk mutable: no, default value: root
trace.zookeeper.pathThe zookeeper node where tracers are registered
type: STRING, zk mutable: no, default value: /tracers
tserver.*Properties in this category affect the behavior of the tablet servers
tserver.assignment.concurrent.maxThe number of threads available to load tablets. Recoveries are still performed serially.
type: COUNT, zk mutable: yes, default value: 2
tserver.assignment.duration.warningThe amount of time an assignment can run before the server will print a warning along with the current stack trace. Meant to help debug stuck assignments
type: TIMEDURATION, zk mutable: yes, default value: 10m
tserver.bloom.load.concurrent.maxThe number of concurrent threads that will load bloom filters in the background. Setting this to zero will make bloom filters load in the foreground.
type: COUNT, zk mutable: yes, default value: 4
tserver.bulk.assign.threadsThe master delegates bulk import RFile processing and assignment to tablet servers. After file has been processed, the tablet server will assign the file to the appropriate tablets on all servers. This property controls the number of threads used to communicate to the other servers.
type: COUNT, zk mutable: yes, default value: 1
tserver.bulk.process.threadsThe master will task a tablet server with pre-processing a bulk import RFile prior to assigning it to the appropriate tablet servers. This configuration value controls the number of threads used to process the files.
type: COUNT, zk mutable: yes, default value: 1
tserver.bulk.retry.maxThe number of times the tablet server will attempt to assign a RFile to a tablet as it migrates and splits.
type: COUNT, zk mutable: yes, default value: 5
tserver.bulk.timeoutThe time to wait for a tablet server to process a bulk import request.
type: TIMEDURATION, zk mutable: yes, default value: 5m
tserver.cache.data.sizeSpecifies the size of the cache for RFile data blocks.
type: MEMORY, zk mutable: yes, default value: 10%
tserver.cache.index.sizeSpecifies the size of the cache for RFile index blocks.
type: MEMORY, zk mutable: yes, default value: 25%
tserver.cache.manager.classSpecifies the class name of the block cache factory implementation. Alternative implementation is org.apache.accumulo.core.file.blockfile.cache.tinylfu.TinyLfuBlockCacheManager
type: STRING, zk mutable: yes, default value: org.apache.accumulo.core.file.blockfile.cache.lru.LruBlockCacheManager
tserver.cache.summary.sizeSpecifies the size of the cache for summary data on each tablet server.
type: MEMORY, zk mutable: yes, default value: 10%
tserver.client.timeoutTime to wait for clients to continue scans before closing a session.
type: TIMEDURATION, zk mutable: yes, default value: 3s
tserver.compaction.major.concurrent.maxThe maximum number of concurrent major compactions for a tablet server
type: COUNT, zk mutable: yes, default value: 3
tserver.compaction.major.delayTime a tablet server will sleep between checking which tablets need compaction.
type: TIMEDURATION, zk mutable: yes, default value: 30s
tserver.compaction.major.thread.files.open.maxMax number of RFiles a major compaction thread can open at once.
type: COUNT, zk mutable: yes, default value: 10
tserver.compaction.major.throughputMaximum number of bytes to read or write per second over all major compactions on a TabletServer, or 0B for unlimited.
type: BYTES, zk mutable: yes, default value: 0B
tserver.compaction.major.trace.percentThe percent of major compactions to trace
type: FRACTION, zk mutable: yes, default value: 0.1
tserver.compaction.minor.concurrent.maxThe maximum number of concurrent minor compactions for a tablet server
type: COUNT, zk mutable: yes, default value: 4
tserver.compaction.minor.trace.percentThe percent of minor compactions to trace
type: FRACTION, zk mutable: yes, default value: 0.1
tserver.compaction.warn.timeWhen a compaction has not made progress for this time period, a warning will be logged
type: TIMEDURATION, zk mutable: yes, default value: 10m
tserver.default.blocksizeSpecifies a default blocksize for the tserver caches
type: BYTES, zk mutable: yes, default value: 1M
tserver.dir.memdumpA long running scan could possibly hold memory that has been minor compacted. To prevent this, the in memory map is dumped to a local file and the scan is switched to that local file. We can not switch to the minor compacted file because it may have been modified by iterators. The file dumped to the local dir is an exact copy of what was in memory.
type: PATH, zk mutable: yes, default value: /tmp
tserver.files.open.idleTablet servers leave previously used RFiles open for future queries. This setting determines how much time an unused RFile should be kept open until it is closed.
type: TIMEDURATION, zk mutable: yes, default value: 1m
tserver.hold.time.maxThe maximum time for a tablet server to be in the “memory full” state. If the tablet server cannot write out memory in this much time, it will assume there is some failure local to its node, and quit. A value of zero is equivalent to forever.
type: TIMEDURATION, zk mutable: yes, default value: 5m
tserver.memory.managerAn implementation of MemoryManger that accumulo will use.
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.server.tabletserver.LargestFirstMemoryManager %}
tserver.memory.maps.maxMaximum amount of memory that can be used to buffer data written to a tablet server. There are two other properties that can effectively limit memory usage table.compaction.minor.logs.threshold and tserver.walog.max.size. Ensure that table.compaction.minor.logs.threshold * tserver.walog.max.size >= this property.
type: MEMORY, zk mutable: yes, default value: 33%
tserver.memory.maps.native.enabledAn in-memory data store for accumulo implemented in c++ that increases the amount of data accumulo can hold in memory and avoids Java GC pauses.
type: BOOLEAN, zk mutable: yes but requires restart of the tserver, default value: true
tserver.metadata.readahead.concurrent.maxDeprecated. This property is deprecated since 2.0.0, use tserver.scan.executors.meta.threads instead. The maximum number of concurrent metadata read ahead that will execute.
type: COUNT, zk mutable: yes, default value: 8
tserver.migrations.concurrent.maxThe maximum number of concurrent tablet migrations for a tablet server
type: COUNT, zk mutable: yes, default value: 1
tserver.monitor.fsWhen enabled the tserver will monitor file systems and kill itself when one switches from rw to ro. This is usually and indication that Linux has detected a bad disk.
type: BOOLEAN, zk mutable: yes, default value: true
tserver.port.clientThe port used for handling client connections on the tablet servers
type: PORT, zk mutable: yes but requires restart of the tserver, default value: 9997
tserver.port.searchif the ports above are in use, search higher ports until one is available
type: BOOLEAN, zk mutable: yes, default value: false
tserver.readahead.concurrent.maxDeprecated. This property is deprecated since 2.0.0, use tserver.scan.executors.default.threads instead. The maximum number of concurrent read ahead that will execute. This effectively limits the number of long running scans that can run concurrently per tserver."
type: COUNT, zk mutable: yes, default value: 16
tserver.recovery.concurrent.maxThe maximum number of threads to use to sort logs during recovery
type: COUNT, zk mutable: yes, default value: 2
tserver.replication.batchwriter.replayer.memoryMemory to provide to batchwriter to replay mutations for replication
type: BYTES, zk mutable: yes, default value: 50M
tserver.replication.default.replayerDefault AccumuloReplicationReplayer implementation
type: CLASSNAME, zk mutable: yes, default value: {% jlink -f org.apache.accumulo.tserver.replication.BatchWriterReplicationReplayer %}
tserver.replication.replayer.*Allows configuration of implementation used to apply replicated data
tserver.scan.executors.*Prefix for defining executors to service scans. See [scan executors]({% durl administration/scan-executors %}) for an overview of why and how to use this property. For each executor the number of threads, thread priority, and an optional prioritizer can be configured. To configure a new executor, set tserver.scan.executors.<name>.threads=<number>. Optionally, can also set tserver.scan.executors.<name>.priority=<number 1 to 10>, tserver.scan.executors.<name>.prioritizer=<class name>, and tserver.scan.executors.<name>.prioritizer.opts.<key>=<value>
tserver.scan.executors.default.prioritizerPrioritizer for the default scan executor. Defaults to none which results in FIFO priority. Set to a class that implements org.apache.accumulo.core.spi.scan.ScanPrioritizer to configure one.
type: STRING, zk mutable: yes, default value: empty
tserver.scan.executors.default.threadsThe number of threads for the scan executor that tables use by default.
type: COUNT, zk mutable: yes, default value: 16
tserver.scan.executors.meta.threadsThe number of threads for the metadata table scan executor.
type: COUNT, zk mutable: yes, default value: 8
tserver.scan.files.open.maxMaximum total RFiles that all tablets in a tablet server can open for scans.
type: COUNT, zk mutable: yes but requires restart of the tserver, default value: 100
tserver.server.message.size.maxThe maximum size of a message that can be sent to a tablet server.
type: BYTES, zk mutable: yes, default value: 1G
tserver.server.threadcheck.timeThe time between adjustments of the server thread pool.
type: TIMEDURATION, zk mutable: yes, default value: 1s
tserver.server.threads.minimumThe minimum number of threads to use to handle incoming requests.
type: COUNT, zk mutable: yes, default value: 20
tserver.session.idle.maxWhen a tablet server's SimpleTimer thread triggers to check idle sessions, this configurable option will be used to evaluate scan sessions to determine if they can be closed due to inactivity
type: TIMEDURATION, zk mutable: yes, default value: 1m
tserver.session.update.idle.maxWhen a tablet server's SimpleTimer thread triggers to check idle sessions, this configurable option will be used to evaluate update sessions to determine if they can be closed due to inactivity
type: TIMEDURATION, zk mutable: yes, default value: 1m
tserver.slow.flush.timeIf a flush to the write-ahead log takes longer than this period of time, debugging information will written, and may result in a log rollover.
type: TIMEDURATION, zk mutable: yes, default value: 100ms
tserver.sort.buffer.sizeThe amount of memory to use when sorting logs during recovery.
type: MEMORY, zk mutable: yes, default value: 10%
tserver.summary.partition.threadsSummary data must be retrieved from RFiles. For a large number of RFiles, the files are broken into partitions of 100K files. This setting determines how many of these groups of 100K RFiles will be processed concurrently.
type: COUNT, zk mutable: yes, default value: 10
tserver.summary.remote.threadsFor a partitioned group of 100K RFiles, those files are grouped by tablet server. Then a remote tablet server is asked to gather summary data. This setting determines how many concurrent request are made per partition.
type: COUNT, zk mutable: yes, default value: 128
tserver.summary.retrieval.threadsThe number of threads on each tablet server available to retrieve summary data, that is not currently in cache, from RFiles.
type: COUNT, zk mutable: yes, default value: 10
tserver.tablet.split.midpoint.files.maxTo find a tablets split points, all RFiles are opened and their indexes are read. This setting determines how many RFiles can be opened at once. When there are more RFiles than this setting multiple passes must be made, which is slower. However opening too many RFiles at once can cause problems.
type: COUNT, zk mutable: yes, default value: 300
tserver.total.mutation.queue.maxThe amount of memory used to store write-ahead-log mutations before flushing them.
type: MEMORY, zk mutable: yes, default value: 5%
tserver.wal.blocksizeThe size of the HDFS blocks used to write to the Write-Ahead log. If zero, it will be 110% of tserver.walog.max.size (that is, try to use just one block)
type: BYTES, zk mutable: yes, default value: 0
tserver.wal.replicationThe replication to use when writing the Write-Ahead log to HDFS. If zero, it will use the HDFS default replication setting.
type: COUNT, zk mutable: yes, default value: 0
tserver.wal.syncUse the SYNC_BLOCK create flag to sync WAL writes to disk. Prevents problems recovering from sudden system resets.
type: BOOLEAN, zk mutable: yes, default value: true
tserver.wal.sync.methodDeprecated. This property is deprecated since 1.7.0. Use table.durability instead.
type: STRING, zk mutable: yes, default value: hsync
tserver.walog.max.ageThe maximum age for each write-ahead log.
type: TIMEDURATION, zk mutable: yes, default value: 24h
tserver.walog.max.sizeThe maximum size for each write-ahead log. See comment for property tserver.memory.maps.max
type: BYTES, zk mutable: yes, default value: 1g
tserver.walog.maximum.wait.durationThe maximum amount of time to wait after a failure to create or write a write-ahead log.
type: TIMEDURATION, zk mutable: yes, default value: 5m
tserver.walog.tolerated.creation.failuresThe maximum number of failures tolerated when creating a new write-ahead log. Negative values will allow unlimited creation failures. Exceeding this number of failures consecutively trying to create a new write-ahead log causes the TabletServer to exit.
type: COUNT, zk mutable: yes, default value: 50
tserver.walog.tolerated.wait.incrementThe amount of time to wait between failures to create or write a write-ahead log.
type: TIMEDURATION, zk mutable: yes, default value: 1000ms
tserver.workq.threadsThe number of threads for the distributed work queue. These threads are used for copying failed bulk import RFiles.
type: COUNT, zk mutable: yes, default value: 2

Property Types

TypeDescription
durationA non-negative integer optionally followed by a unit of time (whitespace disallowed), as in 30s.
If no unit of time is specified, seconds are assumed. Valid units are ‘ms’, ‘s’, ‘m’, ‘h’ for milliseconds, seconds, minutes, and hours.
Examples of valid durations are ‘600’, ‘30s’, ‘45m’, ‘30000ms’, ‘3d’, and ‘1h’.
Examples of invalid durations are ‘1w’, ‘1h30m’, ‘1s 200ms’, ‘ms’, '', and ‘a’.
Unless otherwise stated, the max value for the duration represented in milliseconds is 9223372036854775807
bytesA positive integer optionally followed by a unit of memory (whitespace disallowed).
If no unit is specified, bytes are assumed. Valid units are ‘B’, ‘K’, ‘M’ or ‘G’ for bytes, kilobytes, megabytes, gigabytes.
Examples of valid memories are ‘1024’, ‘20B’, ‘100K’, ‘1500M’, ‘2G’, ‘20%’.
Examples of invalid memories are ‘1M500K’, ‘1M 2K’, ‘1MB’, ‘1.5G’, ‘1,024K’, '', and ‘a’.
Unless otherwise stated, the max value for the memory represented in bytes is 9223372036854775807
memoryA positive integer optionally followed by a unit of memory or a percentage (whitespace disallowed).
If a percentage is specified, memory will be a percentage of the max memory allocated to a Java process (set by the JVM option -Xmx).
If no unit is specified, bytes are assumed. Valid units are ‘B’, ‘K’, ‘M’, ‘G’, ‘%’ for bytes, kilobytes, megabytes, gigabytes, and percentage.
Examples of valid memories are ‘1024’, ‘20B’, ‘100K’, ‘1500M’, ‘2G’, ‘20%’.
Examples of invalid memories are ‘1M500K’, ‘1M 2K’, ‘1MB’, ‘1.5G’, ‘1,024K’, '', and ‘a’.
Unless otherwise stated, the max value for the memory represented in bytes is 9223372036854775807
host listA comma-separated list of hostnames or ip addresses, with optional port numbers.
Examples of valid host lists are ‘localhost:2000,www.example.com,10.10.1.1:500’ and ‘localhost’.
Examples of invalid host lists are '', ‘:1000’, and ‘localhost:80000’
portAn positive integer in the range 1024-65535 (not already in use or specified elsewhere in the configuration),
zero to indicate any open ephemeral port, or a range of positive integers specified as M-N
countA non-negative integer in the range of 0-2147483647
fraction/percentageA floating point number that represents either a fraction or, if suffixed with the ‘%’ character, a percentage.
Examples of valid fractions/percentages are ‘10’, ‘1000%’, ‘0.05’, ‘5%’, ‘0.2%’, ‘0.0005’.
Examples of invalid fractions/percentages are '', ‘10 percent’, ‘Hulk Hogan’
pathA string that represents a filesystem path, which can be either relative or absolute to some directory. The filesystem depends on the property. The following environment variables will be substituted: [ACCUMULO_HOME, ACCUMULO_CONF_DIR]
absolute pathAn absolute filesystem path. The filesystem depends on the property. This is the same as path, but enforces that its root is explicitly specified.
java classA fully qualified java class name representing a class on the classpath.
An example is ‘java.lang.String’, rather than ‘String’
java class listA list of fully qualified java class names representing classes on the classpath.
An example is ‘java.lang.String’, rather than ‘String’
durabilityOne of ‘none’, ‘log’, ‘flush’ or ‘sync’.
stringAn arbitrary string of characters whose format is unspecified and interpreted based on the context of the property to which it applies.
booleanHas a value of either ‘true’ or ‘false’ (case-insensitive)
uriA valid URI