Configuration Management

All accumulo properties have a default value in the source code. Properties can also be set in accumulo-site.xml and in zookeeper on per-table or system-wide basis. If properties are set in more than one location, accumulo will choose the property with the highest precedence. This order of precedence is described below (from highest to lowest):

LocationDescription
Zookeeper
table properties
Table properties are applied to the entire cluster when set in zookeeper using the accumulo API or shell. While table properties take precedent over system properties, both will override properties set in accumulo-site.xml

Table properties consist of all properties with the table.* prefix. Table properties are configured on a per-table basis using the following shell commmand:
config -t TABLE -s PROPERTY=VALUE
Zookeeper
system properties
System properties are applied to the entire cluster when set in zookeeper using the accumulo API or shell. System properties consist of all properties with a 'yes' in the 'Zookeeper Mutable' column in the table below. They are set with the following shell command:
config -s PROPERTY=VALUE
If a table.* property is set using this method, the value will apply to all tables except those configured on per-table basis (which have higher precedence).

While most system properties take effect immediately, some require a restart of the process which is indicated in 'Zookeeper Mutable'.
accumulo-site.xml Accumulo processes (master, tserver, etc) read their local accumulo-site.xml on start up. Therefore, changes made to accumulo-site.xml must rsynced across the cluster and processes must be restarted to apply changes.

Certain properties (indicated by a 'no' in 'Zookeeper Mutable') cannot be set in zookeeper and only set in this file. The accumulo-site.xml also allows you to configure tablet servers with different settings.
Default All properties have a default value in the source code. This value has the lowest precedence and is overriden if set in accumulo-site.xml or zookeeper.

While the default value is usually optimal, there are cases where a change can increase query and ingest performance.

The 'config' command in the shell allows you to view the current system configuration. You can also use the '-t' option to view a table's configuration as below:

    $ ./bin/accumulo shell -u root
    Enter current password for 'root'@'ac14': ******

    Shell - Apache Accumulo Interactive Shell
    -
    - version: 1.5.0
    - instance name: ac14
    - instance id: 4f48fa03-f692-43ce-ae03-94c9ea8b7181
    -
    - type 'help' for a list of available commands
    -
    root@ac13> config -t foo
    ---------+---------------------------------------------+------------------------------------------------------
    SCOPE    | NAME                                        | VALUE
    ---------+---------------------------------------------+------------------------------------------------------
    default  | table.balancer ............................ | org.apache.accumulo.server.master.balancer.DefaultLoadBalancer
    default  | table.bloom.enabled ....................... | false
    default  | table.bloom.error.rate .................... | 0.5%
    default  | table.bloom.hash.type ..................... | murmur
    default  | table.bloom.key.functor ................... | org.apache.accumulo.core.file.keyfunctor.RowFunctor
    default  | table.bloom.load.threshold ................ | 1
    default  | table.bloom.size .......................... | 1048576
    default  | table.cache.block.enable .................. | false
    default  | table.cache.index.enable .................. | false
    default  | table.compaction.major.everything.at ...... | 19700101000000GMT
    default  | table.compaction.major.everything.idle .... | 1h
    default  | table.compaction.major.ratio .............. | 1.3
    site     |    @override .............................. | 1.4
    system   |    @override .............................. | 1.5
    table    |    @override .............................. | 1.6
    default  | table.compaction.minor.idle ............... | 5m
    default  | table.compaction.minor.logs.threshold ..... | 3
    default  | table.failures.ignore ..................... | false
  

Available Properties

Jump to: rpc.* | instance.* | instance.rpc.sasl.impersonation.* | general.* | master.* | tserver.* | tserver.replication.replayer.* | logger.* | gc.* | monitor.* | trace.* | trace.span.receiver.* | trace.token.property.* | table.* | table.custom.* | table.constraint.* | table.iterator.* | table.iterator.scan.* | table.iterator.minc.* | table.iterator.majc.* | table.group.* | table.majc.compaction.strategy.opts.* | table.replication.target.* | general.vfs.context.classpath.* | replication.* | replication.peer.* | replication.peer.user.* | replication.peer.password.* | replication.peer.keytab.*

rpc.*
Properties in this category related to the configuration of SSL keys for RPC. See also instance.ssl.enabled
Property Type ZooKeeper Mutable Default Value Description
rpc.javax.net.ssl.keyStore path no
$ACCUMULO_CONF_DIR/ssl/keystore.jks
Path of the keystore file for the servers' private SSL key
rpc.javax.net.ssl.keyStorePassword string no
 
Password used to encrypt the SSL private keystore. Leave blank to use the Accumulo instance secret
rpc.javax.net.ssl.keyStoreType string no
jks
Type of SSL keystore
rpc.javax.net.ssl.trustStore path no
$ACCUMULO_CONF_DIR/ssl/truststore.jks
Path of the truststore file for the root cert
rpc.javax.net.ssl.trustStorePassword string no
 
Password used to encrypt the SSL truststore. Leave blank to use no password
rpc.javax.net.ssl.trustStoreType string no
jks
Type of SSL truststore
rpc.sasl.qop string no
auth
The quality of protection to be used with SASL. Valid values are 'auth', 'auth-int', and 'auth-conf'
rpc.ssl.cipher.suites string no
 
Comma separated list of cipher suites that can be used by accepted connections
rpc.ssl.client.protocol string no
TLSv1
The 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)
rpc.ssl.server.enabled.protocols string no
TLSv1,TLSv1.1,TLSv1.2
Comma separated list of protocols that can be used to accept connections
rpc.useJsse boolean no
false
Use JSSE system properties to configure SSL rather than the rpc.javax.net.ssl.* Accumulo properties
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.
Property Type ZooKeeper Mutable Default Value Description
instance.dfs.dir absolute path no
/accumulo
Deprecated. HDFS directory in which accumulo instance will run. Do not change after accumulo is initialized.
instance.dfs.uri uri no
 
Deprecated. 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).
instance.rpc.sasl.allowed.host.impersonation string no
 
One-line configuration property controlling the network locations (hostnames) that are allowed to impersonate other users
instance.rpc.sasl.allowed.user.impersonation string no
 
One-line configuration property controlling what users are allowed to impersonate other users
instance.rpc.sasl.enabled boolean no
false
Configures Thrift RPCs to require SASL with GSSAPI which supports Kerberos authentication. Mutually exclusive with SSL RPC configuration.
instance.rpc.ssl.clientAuth boolean no
false
Require clients to present certs signed by a trusted root
instance.rpc.ssl.enabled boolean no
false
Use SSL for socket connections from clients and among accumulo services. Mutually exclusive with SASL RPC configuration.
instance.secret string no
DEFAULT
A secret unique to a given instance that all servers must know in order to communicate with one another. Change it before initialization. To change it later use ./bin/accumulo accumulo.server.util.ChangeSecret [oldpasswd] [newpasswd], and then update conf/accumulo-site.xml everywhere.
instance.security.authenticator java class no
org.apache.accumulo.server.security.handler.ZKAuthenticator
The authenticator class that accumulo will use to determine if a user has privilege to perform an action
instance.security.authorizor java class no
org.apache.accumulo.server.security.handler.ZKAuthorizor
The authorizor class that accumulo will use to determine what labels a user has privilege to see
instance.security.permissionHandler java class no
org.apache.accumulo.server.security.handler.ZKPermHandler
The permission handler class that accumulo will use to determine if a user has privilege to perform an action
instance.volumes string no
 
A comma seperated 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.
instance.volumes.replacements string no
 
Since 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 shold 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.
instance.zookeeper.host host list no
localhost:2181
Comma separated list of zookeeper servers
instance.zookeeper.timeout duration no
30s
Zookeeper session timeout; max value when represented as milliseconds should be no larger than 2147483647
instance.rpc.sasl.impersonation.*
Deprecated. Prefix that allows configuration of users that are allowed to impersonate other users
Property Type ZooKeeper Mutable Default Value Description
general.*
Properties in this category affect the behavior of accumulo overall, but do not have to be consistent throughout a cloud.
Property Type ZooKeeper Mutable Default Value Description
general.classpaths string no
$ACCUMULO_CONF_DIR,
$ACCUMULO_HOME/lib/[^.].*.jar,
$ZOOKEEPER_HOME/zookeeper[^.].*.jar,
$HADOOP_CONF_DIR,
$HADOOP_PREFIX/[^.].*.jar,
$HADOOP_PREFIX/lib/(?!slf4j)[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/common/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/common/lib/(?!slf4j)[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/hdfs/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/mapreduce/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/yarn/[^.].*.jar,
$HADOOP_PREFIX/share/hadoop/yarn/lib/jersey.*.jar,
/usr/hdp/current/hadoop-client/[^.].*.jar,
/usr/hdp/current/hadoop-client/lib/(?!slf4j)[^.].*.jar,
/usr/hdp/current/hadoop-hdfs-client/[^.].*.jar,
/usr/hdp/current/hadoop-mapreduce-client/[^.].*.jar,
/usr/hdp/current/hadoop-yarn-client/[^.].*.jar,
/usr/hdp/current/hadoop-yarn-client/lib/jersey.*.jar,
/usr/hdp/current/hive-client/lib/hive-accumulo-handler.jar
/usr/lib/hadoop/[^.].*.jar,
/usr/lib/hadoop/lib/[^.].*.jar,
/usr/lib/hadoop-hdfs/[^.].*.jar,
/usr/lib/hadoop-mapreduce/[^.].*.jar,
/usr/lib/hadoop-yarn/[^.].*.jar,
/usr/lib/hadoop-yarn/lib/jersey.*.jar,
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. Please note, hadoop conf and hadoop lib directories NEED to be here, along with accumulo lib and zookeeper directory. Supports full regex on filename alone.
general.delegation.token.lifetime duration no
7d
The length of time that delegation tokens and secret keys are valid
general.delegation.token.update.interval duration no
1d
The length of time between generation of new secret keys
general.dynamic.classpaths string no
$ACCUMULO_HOME/lib/ext/[^.].*.jar
A list of all of the places where changes in jars or classes will force a reload of the classloader.
general.kerberos.keytab path no
 
Path to the kerberos keytab to use. Leave blank if not using kerberoized hdfs
general.kerberos.principal string no
 
Name 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
general.kerberos.renewal.period duration no
30s
The 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).
general.legacy.metrics boolean no
false
Use the old metric infrastructure configured by accumulo-metrics.xml, instead of Hadoop Metrics2
general.rpc.timeout duration no
120s
Time to wait on I/O for simple, short RPC calls
general.security.credential.provider.paths string no
 
Comma-separated list of paths to CredentialProviders
general.server.message.size.max memory no
1G
The maximum size of a message that can be sent to a server.
general.server.simpletimer.threadpool.size count no
1
The number of threads to use for server-internal scheduled tasks
general.vfs.cache.dir absolute path no
${java.io.tmpdir}/accumulo-vfs-cache-${user.name}
Directory 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}
general.vfs.classpaths string no
 
Configuration for a system level vfs classloader. Accumulo jar can be configured here and loaded out of HDFS.
master.*
Properties in this category affect the behavior of the master server
Property Type ZooKeeper Mutable Default Value Description
master.bulk.rename.threadpool.size count yes
20
The number of threads to use when moving user files to bulk ingest directories under accumulo control
master.bulk.retries count yes
3
The number of attempts to bulk-load a file before giving up.
master.bulk.threadpool.size count yes
5
The number of threads to use when coordinating a bulk-import.
master.bulk.timeout duration yes
5m
The time to wait for a tablet server to process a bulk import request
master.fate.threadpool.size count yes
4
The number of threads used to run FAult-Tolerant Executions. These are primarily table operations like merge.
master.lease.recovery.interval duration yes
5s
The amount of time to wait after requesting a WAL file to be recovered
master.port.client port yes but requires restart of the master
9999
The port used for handling client connections on the master
master.recovery.delay duration yes
10s
When a tablet server's lock is deleted, it takes time for it to completely quit. This delay gives it time before log recoveries begin.
master.recovery.max.age duration yes
60m
Recovery files older than this age will be removed.
master.recovery.time.max duration yes
30m
The maximum time to attempt recovery before giving up
master.replication.coordinator.minthreads count yes
4
Minimum number of threads dedicated to answering coordinator requests
master.replication.coordinator.port port yes
10001
Port for the replication coordinator service
master.replication.coordinator.threadcheck.time duration yes
5s
The time between adjustments of the coordinator thread pool
master.replication.status.scan.interval duration yes
30s
Amount of time to sleep before scanning the status section of the replication table for new data
master.server.threadcheck.time duration yes
1s
The time between adjustments of the server thread pool.
master.server.threads.minimum count yes
20
The minimum number of threads to use to handle incoming requests.
master.tablet.balancer java class yes
org.apache.accumulo.server.master.balancer.TableLoadBalancer
The balancer class that accumulo will use to make tablet assignment and migration decisions.
master.walog.closer.implementation java class yes
org.apache.accumulo.server.master.recovery.HadoopLogCloser
A class that implements a mechansim to steal write access to a file
tserver.*
Properties in this category affect the behavior of the tablet servers
Property Type ZooKeeper Mutable Default Value Description
tserver.archive.walogs boolean yes
false
Keep copies of the WALOGs for debugging purposes
tserver.assignment.concurrent.max count yes
2
The number of threads available to load tablets. Recoveries are still performed serially.
tserver.assignment.duration.warning duration yes
10m
The 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
tserver.bloom.load.concurrent.max count yes
4
The number of concurrent threads that will load bloom filters in the background. Setting this to zero will make bloom filters load in the foreground.
tserver.bulk.assign.threads count yes
1
The master delegates bulk file processing and assignment to tablet servers. After the bulk 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.
tserver.bulk.process.threads count yes
1
The master will task a tablet server with pre-processing a bulk file prior to assigning it to the appropriate tablet servers. This configuration value controls the number of threads used to process the files.
tserver.bulk.retry.max count yes
5
The number of times the tablet server will attempt to assign a file to a tablet as it migrates and splits.
tserver.bulk.timeout duration yes
5m
The time to wait for a tablet server to process a bulk import request.
tserver.cache.data.size memory yes
128M
Specifies the size of the cache for file data blocks.
tserver.cache.index.size memory yes
512M
Specifies the size of the cache for file indices.
tserver.client.timeout duration yes
3s
Time to wait for clients to continue scans before closing a session.
tserver.compaction.major.concurrent.max count yes
3
The maximum number of concurrent major compactions for a tablet server
tserver.compaction.major.delay duration yes
30s
Time a tablet server will sleep between checking which tablets need compaction.
tserver.compaction.major.thread.files.open.max count yes
10
Max number of files a major compaction thread can open at once.
tserver.compaction.major.trace.percent fraction/percentage yes
0.1
The percent of major compactions to trace
tserver.compaction.minor.concurrent.max count yes
4
The maximum number of concurrent minor compactions for a tablet server
tserver.compaction.minor.trace.percent fraction/percentage yes
0.1
The percent of minor compactions to trace
tserver.compaction.warn.time duration yes
10m
When a compaction has not made progress for this time period, a warning will be logged
tserver.default.blocksize memory yes
1M
Specifies a default blocksize for the tserver caches
tserver.dir.memdump path yes
/tmp
A 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.
tserver.files.open.idle duration yes
1m
Tablet servers leave previously used files open for future queries. This setting determines how much time an unused file should be kept open until it is closed.
tserver.hold.time.max duration yes
5m
The 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.
tserver.memory.manager java class yes
org.apache.accumulo.server.tabletserver.LargestFirstMemoryManager
An implementation of MemoryManger that accumulo will use.
tserver.memory.maps.max memory yes
1G
Maximum 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.
tserver.memory.maps.native.enabled boolean yes but requires restart of the tserver
true
An 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.
tserver.metadata.readahead.concurrent.max count yes
8
The maximum number of concurrent metadata read ahead that will execute.
tserver.migrations.concurrent.max count yes
1
The maximum number of concurrent tablet migrations for a tablet server
tserver.monitor.fs boolean yes
true
When 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.
tserver.mutation.queue.max memory yes
1M
Deprecated. This setting is deprecated. See tserver.total.mutation.queue.max. The amount of memory to use to store write-ahead-log mutations-per-session before flushing them. Since the buffer is per write session, consider the max number of concurrent writer when configuring. When using Hadoop 2, Accumulo will call hsync() on the WAL . For a small number of concurrent writers, increasing this buffer size decreases the frequncy of hsync calls. For a large number of concurrent writers a small buffers size is ok because of group commit.
tserver.port.client port yes but requires restart of the tserver
9997
The port used for handling client connections on the tablet servers
tserver.port.search boolean yes
false
if the ports above are in use, search higher ports until one is available
tserver.readahead.concurrent.max count yes
16
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.
tserver.recovery.concurrent.max count yes
2
The maximum number of threads to use to sort logs during recovery
tserver.replication.batchwriter.replayer.memory memory yes
50M
Memory to provide to batchwriter to replay mutations for replication
tserver.replication.default.replayer java class yes
org.apache.accumulo.tserver.replication.BatchWriterReplicationReplayer
Default AccumuloReplicationReplayer implementation
tserver.scan.files.open.max count yes but requires restart of the tserver
100
Maximum total files that all tablets in a tablet server can open for scans.
tserver.server.message.size.max memory yes
1G
The maximum size of a message that can be sent to a tablet server.
tserver.server.threadcheck.time duration yes
1s
The time between adjustments of the server thread pool.
tserver.server.threads.minimum count yes
20
The minimum number of threads to use to handle incoming requests.
tserver.session.idle.max duration yes
1m
maximum idle time for a session
tserver.sort.buffer.size memory yes
200M
The amount of memory to use when sorting logs during recovery.
tserver.tablet.split.midpoint.files.max count yes
30
To find a tablets split points, all index files are opened. This setting determines how many index files can be opened at once. When there are more index files than this setting multiple passes must be made, which is slower. However opening too many files at once can cause problems.
tserver.total.mutation.queue.max memory yes
50M
The amount of memory used to store write-ahead-log mutations before flushing them.
tserver.wal.blocksize memory yes
0
The 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)
tserver.wal.replication count yes
0
The replication to use when writing the Write-Ahead log to HDFS. If zero, it will use the HDFS default replication setting.
tserver.wal.sync boolean yes
true
Use the SYNC_BLOCK create flag to sync WAL writes to disk. Prevents problems recovering from sudden system resets.
tserver.wal.sync.method string yes
hsync
Deprecated. This property is deprecated. Use table.durability instead.
tserver.walog.max.size memory yes
1G
The maximum size for each write-ahead log. See comment for property tserver.memory.maps.max
tserver.walog.maximum.wait.duration duration yes
5m
The maximum amount of time to wait after a failure to create a WAL file.
tserver.walog.tolerated.creation.failures count yes
50
The maximum number of failures tolerated when creating a new WAL file within the period specified by tserver.walog.failures.period. Exceeding this number of failures in the period causes the TabletServer to exit.
tserver.walog.tolerated.wait.increment duration yes
1000ms
The amount of time to wait between failures to create a WALog.
tserver.workq.threads count yes
2
The number of threads for the distributed work queue. These threads are used for copying failed bulk files.
tserver.replication.replayer.*
Allows configuration of implementation used to apply replicated data
Property Type ZooKeeper Mutable Default Value Description
logger.*
Properties in this category affect the behavior of the write-ahead logger servers
Property Type ZooKeeper Mutable Default Value Description
logger.dir.walog path yes
walogs
This property is only needed if Accumulo was upgraded from a 1.4 or earlier version. In the upgrade to 1.5 this property is used to copy any earlier write ahead logs into DFS. In 1.6+, this property is used by the LocalWALRecovery utility in the event that something went wrong with that earlier upgrade. It is possible to specify a comma-separated list of directories.
gc.*
Properties in this category affect the behavior of the accumulo garbage collector.
Property Type ZooKeeper Mutable Default Value Description
gc.cycle.delay duration yes
5m
Time between garbage collection cycles. In each cycle, old files no longer in use are removed from the filesystem.
gc.cycle.start duration yes
30s
Time to wait before attempting to garbage collect any old files.
gc.file.archive boolean yes
false
Archive any files/directories instead of moving to the HDFS trash or deleting
gc.port.client port yes but requires restart of the gc
50091
The listening port for the garbage collector's monitor service
gc.threads.delete count yes
16
The number of threads used to delete files
gc.trace.percent fraction/percentage yes
0.01
Percent of gc cycles to trace
gc.trash.ignore boolean yes
false
Do not use the Trash, even if it is configured
monitor.*
Properties in this category affect the behavior of the monitor web server.
Property Type ZooKeeper Mutable Default Value Description
monitor.banner.background string yes
#304065
The background color of the banner text displayed on the monitor page.
monitor.banner.color string yes
#c4c4c4
The color of the banner text displayed on the monitor page.
monitor.banner.text string yes
 
The banner text displayed on the monitor page.
monitor.lock.check.interval duration no
5s
The amount of time to sleep between checking for the Montior ZooKeeper lock
monitor.log.date.format string no
yyyy/MM/dd HH:mm:ss,SSS
The SimpleDateFormat string used to configure the date shown on the 'Recent Logs' monitor page
monitor.port.client port no
50095
The listening port for the monitor's http service
monitor.port.log4j port no
4560
The listening port for the monitor's log4j logging collection.
monitor.ssl.exclude.ciphers string no
 
A comma-separated list of disallowed SSL Ciphers, see mmonitor.ssl.include.ciphers to allow ciphers
monitor.ssl.include.ciphers string no
 
A comma-separated list of allows SSL Ciphers, see monitor.ssl.exclude.ciphers to disallow ciphers
monitor.ssl.include.protocols string no
TLSv1,TLSv1.1,TLSv1.2
A comma-separate list of allowed SSL protocols
monitor.ssl.keyStore path no
 
The keystore for enabling monitor SSL.
monitor.ssl.keyStorePassword string no
 
The keystore password for enabling monitor SSL.
monitor.ssl.keyStoreType string no
jks
Type of SSL keystore
monitor.ssl.trustStore path no
 
The truststore for enabling monitor SSL.
monitor.ssl.trustStorePassword string no
 
The truststore password for enabling monitor SSL.
monitor.ssl.trustStoreType string no
jks
Type of SSL truststore
trace.*
Properties in this category affect the behavior of distributed tracing.
Property Type ZooKeeper Mutable Default Value Description
trace.password string no
secret
The password for the user used to store distributed traces
trace.port.client port no
12234
The listening port for the trace server
trace.span.receivers java class list no
org.apache.accumulo.tracer.ZooTraceClient
A list of span receiver classes to send trace spans
trace.table string no
trace
The name of the table to store distributed traces
trace.token.type java class no
org.apache.accumulo.core.client.security.tokens.PasswordToken
An AuthenticationToken type supported by the authorizer
trace.user string no
root
The name of the user to store distributed traces
trace.zookeeper.path string no
/tracers
The zookeeper node where tracers are registered
trace.span.receiver.*
Prefix for span receiver configuration properties
Property Type ZooKeeper Mutable Default Value Description
trace.token.property.*
The prefix used to create a token for storing distributed traces. For each propetry required by trace.token.type, place this prefix in front of it.
Property Type ZooKeeper Mutable Default Value Description
table.*
Properties in this category affect tablet server treatment of tablets, but can be configured on a per-table basis. Setting these properties in the site file 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 the site file 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.
Property Type ZooKeeper Mutable Default Value Description
table.balancer string yes
org.apache.accumulo.server.master.balancer.DefaultLoadBalancer
This property can be set to allow the LoadBalanceByTable load balancer to change the called Load Balancer for this table
table.bloom.enabled boolean yes
false
Use bloom filters on this table.
table.bloom.error.rate fraction/percentage yes
0.5%
Bloom filter error rate.
table.bloom.hash.type string yes
murmur
The bloom filter hash type
table.bloom.key.functor java class yes
org.apache.accumulo.core.file.keyfunctor.RowFunctor
A 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.
table.bloom.load.threshold count yes
1
This number of seeks that would actually use a bloom filter must occur before a file's bloom filter is loaded. Set this to zero to initiate loading of bloom filters when a file is opened.
table.bloom.size count yes
1048576
Bloom filter size, as number of keys.
table.cache.block.enable boolean yes
false
Determines whether file block cache is enabled.
table.cache.index.enable boolean yes
true
Determines whether index cache is enabled.
table.classpath.context string yes
 
Per table classpath context
table.compaction.major.everything.idle duration yes
1h
After a tablet has been idle (no mutations) for this time period it may have all of its files 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 files.
table.compaction.major.ratio fraction/percentage yes
3
minimum ratio of total input size to maximum input file size for running a major compactionWhen adjusting this property you may want to also adjust table.file.max. Want to avoid the situation where only merging minor compactions occur.
table.compaction.minor.idle duration yes
5m
After 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.
table.compaction.minor.logs.threshold count yes
3
When 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
table.durability durability yes
sync
The 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.
table.failures.ignore boolean yes
false
If 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.
table.file.blocksize memory yes
0B
Overrides the hadoop dfs.block.size setting so that files have better query performance. The maximum value for this is 2147483647
table.file.compress.blocksize memory yes
100K
Similar to the hadoop io.seqfile.compress.blocksize setting, so that files have better query performance. The maximum value for this is 2147483647. (This setting is the size threshold prior to compression, and applies even compression is disabled.)
table.file.compress.blocksize.index memory yes
128K
Determines how large index blocks can be in files that support multilevel indexes. The maximum value for this is 2147483647. (This setting is the size threshold prior to compression, and applies even compression is disabled.)
table.file.compress.type string yes
gz
One of gz,lzo,none
table.file.max count yes
15
Determines the max # of files 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 files than can be opened. Setting this property low may throttle ingest and increase query performance.
table.file.replication count yes
0
Determines how many replicas to keep of a tables' files in HDFS. When this value is LTE 0, HDFS defaults are used.
table.file.type string yes
rf
Change the type of file a table writes
table.formatter string yes
org.apache.accumulo.core.util.format.DefaultFormatter
The Formatter class to apply on results in the shell
table.groups.enabled string yes
 
A comma separated list of locality group names to enable for this table.
table.interepreter string yes
org.apache.accumulo.core.util.interpret.DefaultScanInterpreter
The ScanInterpreter class to apply on scan arguments in the shell
table.majc.compaction.strategy java class yes
org.apache.accumulo.tserver.compaction.DefaultCompactionStrategy
A customizable major compaction strategy.
table.replication boolean yes
false
Is replication enabled for the given table
table.scan.max.memory memory yes
512K
The 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.
table.security.scan.visibility.default string yes
 
The security label that will be assumed at scan time if an entry does not have a visibility set.
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.
table.split.endrow.size.max memory yes
10K
Maximum size of end row
table.split.threshold memory yes
1G
When combined size of files exceeds this amount a tablet is split.
table.walog.enabled boolean yes
true
Deprecated. This setting is deprecated. Use table.durability=none instead.
table.custom.*
Prefix to be used for user defined arbitrary properties.
Property Type ZooKeeper Mutable Default Value Description
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.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.scan.*
Convenience prefix to find options for the scan iterator scope
Property Type ZooKeeper Mutable Default Value Description
table.iterator.minc.*
Convenience prefix to find options for the minc iterator scope
Property Type ZooKeeper Mutable Default Value Description
table.iterator.majc.*
Convenience prefix to find options for the majc iterator scope
Property Type ZooKeeper Mutable Default Value Description
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.majc.compaction.strategy.opts.*
Properties in this category are used to configure the compaction strategy.
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
Property Type ZooKeeper Mutable Default Value Description
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 seperated 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 nameIf delegation is not specified, it defaults to loading from parent classloader first.
Property Type ZooKeeper Mutable Default Value Description
replication.*
Properties in this category affect the replication of data to other Accumulo instances.
Property Type ZooKeeper Mutable Default Value Description
replication.driver.delay duration yes
0s
Amount of time to wait before the replication work loop begins in the master.
replication.max.unit.size memory yes
64M
Maximum size of data to send in a replication message
replication.max.work.queue count yes
1000
Upper bound of the number of files queued for replication
replication.name string yes
 
Name of this cluster with respect to replication. Used to identify this instance from other peers
replication.receipt.service.port port yes
10002
Listen port used by thrift service in tserver listening for replication
replication.receiver.min.threads count yes
1
Minimum number of threads for replication
replication.receiver.threadcheck.time duration yes
30s
The time between adjustments of the replication thread pool.
replication.trace.percent fraction/percentage yes
0.1
The sampling percentage to use for replication traces
replication.work.assigner java class yes
org.apache.accumulo.master.replication.UnorderedWorkAssigner
Replication WorkAssigner implementation to use
replication.work.assignment.sleep duration yes
30s
Amount of time to sleep between replication work assignment
replication.work.attempts count yes
10
Number of attempts to try to replicate some data before giving up and letting it naturally be retried later
replication.work.processor.delay duration yes
0s
Amount of time to wait before first checking for replication work, not useful outside of tests
replication.work.processor.period duration yes
0s
Amount of time to wait before re-checking for replication work, not useful outside of tests
replication.worker.threads count yes
4
Size of the threadpool that each tabletserver devotes to replicating data
replication.peer.*
Properties in this category control what systems data can be replicated to
Property Type ZooKeeper Mutable Default Value Description
replication.peer.user.*
The username to provide when authenticating with the given peer
Property Type ZooKeeper Mutable Default Value Description
replication.peer.password.*
The password to provide when authenticating with the given peer
Property Type ZooKeeper Mutable Default Value Description
replication.peer.keytab.*
The keytab to use when authenticating with the given peer
Property Type ZooKeeper Mutable Default Value Description

Property Types

Property Type Description

duration

A 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

date/time

A date/time string in the format: YYYYMMDDhhmmssTTT where TTT is the 3 character time zone

memory

A positive integer optionally followed by a unit of memory (whitespace disallowed), as in 2G. If no unit is specified, bytes are assumed. Valid units are 'B', 'K', 'M', 'G', for bytes, kilobytes, megabytes, and gigabytes. Examples of valid memories are '1024', '20B', '100K', '1500M', '2G'. 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 list

A 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'

port

An positive integer in the range 1024-65535, not already in use or specified elsewhere in the configuration

count

A non-negative integer in the range of 0-2147483647

fraction/percentage

A 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'

path

A 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 path

An absolute filesystem path. The filesystem depends on the property. This is the same as path, but enforces that its root is explicitly specified.

java class

A fully qualified java class name representing a class on the classpath. An example is 'java.lang.String', rather than 'String'

java class list

A list of fully qualified java class names representing classes on the classpath. An example is 'java.lang.String', rather than 'String'

durability

One of 'none', 'log', 'flush' or 'sync'.

string

An arbitrary string of characters whose format is unspecified and interpreted based on the context of the property to which it applies.

boolean

Has a value of either 'true' or 'false'

uri

A valid URI