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):
Location | Description |
---|---|
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=VALUEIf 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
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, |
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.keyPassword | string | no | Optional: the password for the private key in the keyStore. When not provided, this defaults to the keystore password. | |
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 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 |