ACCUMULO-4630 Refactored documentation for website

* Converted asciidoc to markdown
* Created sidebar navigation
* Added back images


Project: http://git-wip-us.apache.org/repos/asf/accumulo-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo-website/commit/7cc70b2e
Tree: http://git-wip-us.apache.org/repos/asf/accumulo-website/tree/7cc70b2e
Diff: http://git-wip-us.apache.org/repos/asf/accumulo-website/diff/7cc70b2e

Branch: refs/heads/master
Commit: 7cc70b2efedfc1f6acf779d7b3fbf26c7062ae11
Parents: 32ac61d
Author: Mike Walch <mwa...@apache.org>
Authored: Tue May 16 11:07:50 2017 -0400
Committer: Mike Walch <mwa...@apache.org>
Committed: Mon May 22 13:18:03 2017 -0400

----------------------------------------------------------------------
 _config.yml                                     |   30 +
 .../administration/configuration-management.md  |   91 ++
 .../administration/configuration-properties.md  |  265 ++++
 _docs-unreleased/administration/fate.md         |   73 ++
 _docs-unreleased/administration/kerberos.md     |  605 +++++++++
 _docs-unreleased/administration/multivolume.md  |   73 ++
 _docs-unreleased/administration/overview.md     | 1151 ++++++++++++++++++
 _docs-unreleased/administration/replication.md  |  385 ++++++
 _docs-unreleased/administration/ssl.md          |  124 ++
 _docs-unreleased/development/analytics.md       |  226 ++++
 .../development/development_tools.md            |  102 ++
 .../development/high_speed_ingest.md            |  113 ++
 _docs-unreleased/development/iterator_design.md |  386 ++++++
 .../development/iterator_testing.md             |   97 ++
 _docs-unreleased/development/sampling.md        |   75 ++
 _docs-unreleased/development/security.md        |  169 +++
 _docs-unreleased/development/summaries.md       |  222 ++++
 _docs-unreleased/getting-started/clients.md     |  381 ++++++
 _docs-unreleased/getting-started/design.md      |  165 +++
 _docs-unreleased/getting-started/shell.md       |  145 +++
 .../getting-started/table_configuration.md      |  664 ++++++++++
 .../getting-started/table_design.md             |  303 +++++
 _docs-unreleased/index.md                       |   16 +
 _docs-unreleased/troubleshooting/overview.md    |  820 +++++++++++++
 _layouts/default.hml                            |    2 +-
 _layouts/docs-unreleased.html                   |   47 +
 _layouts/post.html                              |    9 +-
 css/accumulo.scss                               |   18 +-
 docs/master/administration.md                   | 1145 -----------------
 docs/master/analytics.md                        |  229 ----
 docs/master/clients.md                          |  403 ------
 docs/master/design.md                           |  180 ---
 docs/master/development_clients.md              |  107 --
 docs/master/high_speed_ingest.md                |  124 --
 docs/master/implementation.md                   |   86 --
 docs/master/introduction.md                     |   25 -
 docs/master/iterator_design.md                  |  401 ------
 docs/master/iterator_test_harness.md            |  110 --
 docs/master/kerberos.md                         |  663 ----------
 docs/master/multivolume.md                      |   82 --
 docs/master/replication.md                      |  399 ------
 docs/master/sampling.md                         |   86 --
 docs/master/security.md                         |  182 ---
 docs/master/shell.md                            |  159 ---
 docs/master/ssl.md                              |  134 --
 docs/master/summaries.md                        |  232 ----
 docs/master/table_configuration.md              |  670 ----------
 docs/master/table_design.md                     |  336 -----
 docs/master/troubleshooting.md                  |  845 -------------
 images/docs/data_distribution.png               |  Bin 0 -> 86937 bytes
 images/docs/failure_handling.png                |  Bin 0 -> 48905 bytes
 images/docs/key_value.png                       |  Bin 0 -> 9899 bytes
 52 files changed, 6750 insertions(+), 6605 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/7cc70b2e/_config.yml
----------------------------------------------------------------------
diff --git a/_config.yml b/_config.yml
index 51c5122..ef56ee4 100644
--- a/_config.yml
+++ b/_config.yml
@@ -20,6 +20,15 @@ num_home_posts: 5
 # Build settings
 markdown: kramdown
 
+# Collection names cannot contain periods
+collections: 
+  docs-unreleased:
+    output: true
+    permalink: "/docs/unreleased/:path"
+#  docs-2-0:
+#    output: true
+#    permalink: "/docs/2.0/:path"
+
 defaults:
   -
     scope:
@@ -42,5 +51,26 @@ defaults:
       layout: "release"
       category: "release"
       permalink: "/:categories/:title/"
+  -
+    scope:
+      path: ""
+      type: "docs-unreleased"
+    values:
+      layout: "docs-unreleased"
+      title_prefix: "Accumulo Documentation - "
+      version: "unreleased"
+      docs_baseurl: "/docs/unreleased"
+      skiph1fortitle: "true"
+#  -
+#    scope:
+#      path: ""
+#      type: "docs-2-0"
+#    values:
+#      layout: "docs-2.0"
+#      title_prefix: "Accumulo Documentation - "
+#      version: "2.0"
+#      docs_baseurl: "/docs/2.0"
+#      skiph1fortitle: "true"
+
 whitelist: [jekyll-redirect-from]
 gems: [jekyll-redirect-from]

http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/7cc70b2e/_docs-unreleased/administration/configuration-management.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/administration/configuration-management.md 
b/_docs-unreleased/administration/configuration-management.md
new file mode 100644
index 0000000..a1c83ee
--- /dev/null
+++ b/_docs-unreleased/administration/configuration-management.md
@@ -0,0 +1,91 @@
+---
+title: Configuration Management
+category: administration
+order: 2
+---
+
+## Configuration Overview
+
+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):
+
+### 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 
command:
+
+    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 synced 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 Values
+
+All properties have a default value in the source code.  This value has the 
lowest precedence and is overridden 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.
+
+### ZooKeeper Property Considerations
+
+Any properties that are stored in ZooKeeper should consider the limitations of 
ZooKeeper itself with respect to the
+number of nodes and the size of the node data. Custom table properties and 
options for Iterators configured on tables
+are two areas in which there aren't any fail safes built into the API that can 
prevent the user from making this mistake.
+
+While these properties have the ability to add some much needed dynamic 
configuration tools, use cases which might fall
+into these warnings should be reconsidered.
+
+## Configuration in the Shell
+
+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'@'accumulo-instance': ******
+
+Shell - Apache Accumulo Interactive Shell
+-
+- version: 2.x.x
+- instance name: accumulo-instance
+- instance id: 4f48fa03-f692-43ce-ae03-94c9ea8b7181
+-
+- type 'help' for a list of available commands
+-
+root@accumulo-instance> 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
+```

http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/7cc70b2e/_docs-unreleased/administration/configuration-properties.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/administration/configuration-properties.md 
b/_docs-unreleased/administration/configuration-properties.md
new file mode 100644
index 0000000..b8cd1ff
--- /dev/null
+++ b/_docs-unreleased/administration/configuration-properties.md
@@ -0,0 +1,265 @@
+---
+title: Configuration Properties
+category: administration
+order: 3
+---
+
+<!-- WARNING: Do not edit this file. It is a generated file that is copied 
from Accumulo build (from core/target/generated-docs) -->
+
+| Property | Description |
+|--------------|-------------|
+| <a name="gc_prefix"></a> **gc.*** | Properties in this category affect the 
behavior of the accumulo garbage collector. |
+| <a name="gc_cycle_delay"></a> gc.cycle.delay | Time between garbage 
collection cycles. In each cycle, old files no longer in use are removed from 
the filesystem.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default 
value:** `5m` |
+| <a name="gc_cycle_start"></a> gc.cycle.start | Time to wait before 
attempting to garbage collect any old files.<br>**type:** TIMEDURATION, **zk 
mutable:** yes, **default value:** `30s` |
+| <a name="gc_file_archive"></a> gc.file.archive | Archive any 
files/directories instead of moving to the HDFS trash or deleting.<br>**type:** 
BOOLEAN, **zk mutable:** yes, **default value:** `false` |
+| <a name="gc_port_client"></a> gc.port.client | The listening port for the 
garbage collector's monitor service<br>**type:** PORT, **zk mutable:** yes but 
requires restart of the gc, **default value:** `9998` |
+| <a name="gc_threads_delete"></a> gc.threads.delete | The number of threads 
used to delete files<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `16` |
+| <a name="gc_trace_percent"></a> gc.trace.percent | Percent of gc cycles to 
trace<br>**type:** FRACTION, **zk mutable:** yes, **default value:** `0.01` |
+| <a name="gc_trash_ignore"></a> gc.trash.ignore | Do not use the Trash, even 
if it is configured.<br>**type:** BOOLEAN, **zk mutable:** yes, **default 
value:** `false` |
+| <a name="general_prefix"></a> **general.*** | Properties in this category 
affect the behavior of accumulo overall, but do not have to be consistent 
throughout a cloud. |
+| <a name="general_classpaths"></a> general.classpaths | **Deprecated.** 
~~This property is deprecated. The class path should instead be configured by 
the launch environment (for example, accumulo-env.sh). A list of all of the 
places to look for a class. Order does matter, as it will look for the jar 
starting in the first location to the last. Supports full regex on filename 
alone.~~<br>~~**type:** STRING~~, ~~**zk mutable:** no~~, ~~**default value:** 
empty~~ |
+| <a name="general_custom_prefix"></a> **general.custom.*** | Prefix to be 
used for user defined system-wide properties. This may be particularly useful 
for system-wide configuration for various user-implementations of pluggable 
Accumulo features, such as the balancer or volume chooser. |
+| <a name="general_delegation_token_lifetime"></a> 
general.delegation.token.lifetime | The length of time that delegation tokens 
and secret keys are valid<br>**type:** TIMEDURATION, **zk mutable:** no, 
**default value:** `7d` |
+| <a name="general_delegation_token_update_interval"></a> 
general.delegation.token.update.interval | The length of time between 
generation of new secret keys<br>**type:** TIMEDURATION, **zk mutable:** no, 
**default value:** `1d` |
+| <a name="general_dynamic_classpaths"></a> general.dynamic.classpaths | A 
list of all of the places where changes in jars or classes will force a reload 
of the classloader.<br>**type:** STRING, **zk mutable:** no, **default value:** 
`$ACCUMULO_HOME/lib/ext/[^.].*.jar` |
+| <a name="general_kerberos_keytab"></a> general.kerberos.keytab | Path to the 
kerberos keytab to use. Leave blank if not using kerberoized hdfs<br>**type:** 
PATH, **zk mutable:** no, **default value:** empty |
+| <a name="general_kerberos_principal"></a> general.kerberos.principal | 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<br>**type:** STRING, **zk mutable:** no, **default 
value:** empty |
+| <a name="general_kerberos_renewal_period"></a> 
general.kerberos.renewal.period | 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).<br>**type:** TIMEDURATION, **zk mutable:** no, **default value:** 
`30s` |
+| <a name="general_legacy_metrics"></a> general.legacy.metrics | Use the old 
metric infrastructure configured by accumulo-metrics.xml, instead of Hadoop 
Metrics2<br>**type:** BOOLEAN, **zk mutable:** no, **default value:** `false` |
+| <a name="general_max_scanner_retry_period"></a> 
general.max.scanner.retry.period | The maximum amount of time that a Scanner 
should wait before retrying a failed RPC<br>**type:** TIMEDURATION, **zk 
mutable:** no, **default value:** `5s` |
+| <a name="general_rpc_timeout"></a> general.rpc.timeout | Time to wait on I/O 
for simple, short RPC calls<br>**type:** TIMEDURATION, **zk mutable:** no, 
**default value:** `120s` |
+| <a name="general_security_credential_provider_paths"></a> 
general.security.credential.provider.paths | Comma-separated list of paths to 
CredentialProviders<br>**type:** STRING, **zk mutable:** no, **default value:** 
empty |
+| <a name="general_server_message_size_max"></a> 
general.server.message.size.max | The maximum size of a message that can be 
sent to a server.<br>**type:** BYTES, **zk mutable:** no, **default value:** 
`1G` |
+| <a name="general_server_simpletimer_threadpool_size"></a> 
general.server.simpletimer.threadpool.size | The number of threads to use for 
server-internal scheduled tasks<br>**type:** COUNT, **zk mutable:** no, 
**default value:** `1` |
+| <a name="general_vfs_cache_dir"></a> general.vfs.cache.dir | 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}<br>**type:** ABSOLUTEPATH, 
**zk mutable:** no, **default value:** 
`${java.io.tmpdir}/accumulo-vfs-cache-${user.name}` |
+| <a name="general_vfs_classpaths"></a> general.vfs.classpaths | Configuration 
for a system level vfs classloader. Accumulo jar can be configured here and 
loaded out of HDFS.<br>**type:** STRING, **zk mutable:** no, **default value:** 
empty |
+| <a name="general_vfs_context_classpath_prefix"></a> 
**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. |
+| <a name="instance_prefix"></a> **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. |
+| <a name="instance_dfs_dir"></a> instance.dfs.dir | **Deprecated.** ~~HDFS 
directory in which accumulo instance will run. Do not change after accumulo is 
initialized.~~<br>~~**type:** ABSOLUTEPATH~~, ~~**zk mutable:** no~~, 
~~**default value:** `/accumulo`~~ |
+| <a name="instance_dfs_uri"></a> instance.dfs.uri | **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).~~<br>~~**type:** URI~~, ~~**zk mutable:** no~~, ~~**default value:** 
empty~~ |
+| <a name="instance_rpc_sasl_allowed_host_impersonation"></a> 
instance.rpc.sasl.allowed.host.impersonation | One-line configuration property 
controlling the network locations (hostnames) that are allowed to impersonate 
other users<br>**type:** STRING, **zk mutable:** no, **default value:** empty |
+| <a name="instance_rpc_sasl_allowed_user_impersonation"></a> 
instance.rpc.sasl.allowed.user.impersonation | One-line configuration property 
controlling what users are allowed to impersonate other users<br>**type:** 
STRING, **zk mutable:** no, **default value:** empty |
+| <a name="instance_rpc_sasl_enabled"></a> instance.rpc.sasl.enabled | 
Configures Thrift RPCs to require SASL with GSSAPI which supports Kerberos 
authentication. Mutually exclusive with SSL RPC configuration.<br>**type:** 
BOOLEAN, **zk mutable:** no, **default value:** `false` |
+| <a name="instance_rpc_sasl_impersonation_prefix"></a> 
**instance.rpc.sasl.impersonation.*** | **Deprecated.** ~~Prefix that allows 
configuration of users that are allowed to impersonate other users~~ |
+| <a name="instance_rpc_ssl_clientAuth"></a> instance.rpc.ssl.clientAuth | 
Require clients to present certs signed by a trusted root<br>**type:** BOOLEAN, 
**zk mutable:** no, **default value:** `false` |
+| <a name="instance_rpc_ssl_enabled"></a> instance.rpc.ssl.enabled | Use SSL 
for socket connections from clients and among accumulo services. Mutually 
exclusive with SASL RPC configuration.<br>**type:** BOOLEAN, **zk mutable:** 
no, **default value:** `false` |
+| <a name="instance_secret"></a> instance.secret | A secret unique to a given 
instance that all servers must know in order to communicate with one another.It 
should be changed prior to the initialization of Accumulo. To change it after 
Accumulo has been initialized, use the ChangeSecret tool and then update 
accumulo-site.xml everywhere. Before using the ChangeSecret tool, make sure 
Accumulo is not running and you are logged in as the user that controls 
Accumulo files in HDFS.  To use the ChangeSecret tool, run the command: 
./bin/accumulo org.apache.accumulo.server.util.ChangeSecret<br>**type:** 
STRING, **zk mutable:** no, **default value:** `DEFAULT` |
+| <a name="instance_security_authenticator"></a> 
instance.security.authenticator | The authenticator class that accumulo will 
use to determine if a user has privilege to perform an action<br>**type:** 
CLASSNAME, **zk mutable:** no, **default value:** 
`org.apache.accumulo.server.security.handler.ZKAuthenticator` |
+| <a name="instance_security_authorizor"></a> instance.security.authorizor | 
The authorizor class that accumulo will use to determine what labels a user has 
privilege to see<br>**type:** CLASSNAME, **zk mutable:** no, **default value:** 
`org.apache.accumulo.server.security.handler.ZKAuthorizor` |
+| <a name="instance_security_permissionHandler"></a> 
instance.security.permissionHandler | The permission handler class that 
accumulo will use to determine if a user has privilege to perform an 
action<br>**type:** CLASSNAME, **zk mutable:** no, **default value:** 
`org.apache.accumulo.server.security.handler.ZKPermHandler` |
+| <a name="instance_volumes"></a> instance.volumes | 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.<br>**type:** STRING, **zk 
mutable:** no, **default value:** empty |
+| <a name="instance_volumes_replacements"></a> instance.volumes.replacements | 
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.<br>**type:** STRING, **zk mutable:** no, **default value:** 
empty |
+| <a name="instance_zookeeper_host"></a> instance.zookeeper.host | Comma 
separated list of zookeeper servers<br>**type:** HOSTLIST, **zk mutable:** no, 
**default value:** `localhost:2181` |
+| <a name="instance_zookeeper_timeout"></a> instance.zookeeper.timeout | 
Zookeeper session timeout; max value when represented as milliseconds should be 
no larger than 2147483647<br>**type:** TIMEDURATION, **zk mutable:** no, 
**default value:** `30s` |
+| <a name="master_prefix"></a> **master.*** | Properties in this category 
affect the behavior of the master server |
+| <a name="master_bulk_rename_threadpool_size"></a> 
master.bulk.rename.threadpool.size | The number of threads to use when moving 
user files to bulk ingest directories under accumulo control<br>**type:** 
COUNT, **zk mutable:** yes, **default value:** `20` |
+| <a name="master_bulk_retries"></a> master.bulk.retries | The number of 
attempts to bulk-load a file before giving up.<br>**type:** COUNT, **zk 
mutable:** yes, **default value:** `3` |
+| <a name="master_bulk_threadpool_size"></a> master.bulk.threadpool.size | The 
number of threads to use when coordinating a bulk-import.<br>**type:** COUNT, 
**zk mutable:** yes, **default value:** `5` |
+| <a name="master_bulk_timeout"></a> master.bulk.timeout | The time to wait 
for a tablet server to process a bulk import request<br>**type:** TIMEDURATION, 
**zk mutable:** yes, **default value:** `5m` |
+| <a name="master_fate_threadpool_size"></a> master.fate.threadpool.size | The 
number of threads used to run FAult-Tolerant Executions. These are primarily 
table operations like merge.<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `4` |
+| <a name="master_lease_recovery_interval"></a> master.lease.recovery.interval 
| The amount of time to wait after requesting a WAL file to be 
recovered<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** 
`5s` |
+| <a name="master_metadata_suspendable"></a> master.metadata.suspendable | 
Allow tablets for the accumulo.metadata table to be suspended via 
table.suspend.duration.<br>**type:** BOOLEAN, **zk mutable:** yes, **default 
value:** `false` |
+| <a name="master_port_client"></a> master.port.client | The port used for 
handling client connections on the master<br>**type:** PORT, **zk mutable:** 
yes but requires restart of the master, **default value:** `9999` |
+| <a name="master_recovery_delay"></a> master.recovery.delay | 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.<br>**type:** TIMEDURATION, **zk 
mutable:** yes, **default value:** `10s` |
+| <a name="master_recovery_max_age"></a> master.recovery.max.age | Recovery 
files older than this age will be removed.<br>**type:** TIMEDURATION, **zk 
mutable:** yes, **default value:** `60m` |
+| <a name="master_recovery_time_max"></a> master.recovery.time.max | The 
maximum time to attempt recovery before giving up<br>**type:** TIMEDURATION, 
**zk mutable:** yes, **default value:** `30m` |
+| <a name="master_replication_coordinator_minthreads"></a> 
master.replication.coordinator.minthreads | Minimum number of threads dedicated 
to answering coordinator requests<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `4` |
+| <a name="master_replication_coordinator_port"></a> 
master.replication.coordinator.port | Port for the replication coordinator 
service<br>**type:** PORT, **zk mutable:** yes, **default value:** `10001` |
+| <a name="master_replication_coordinator_threadcheck_time"></a> 
master.replication.coordinator.threadcheck.time | The time between adjustments 
of the coordinator thread pool<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `5s` |
+| <a name="master_replication_status_scan_interval"></a> 
master.replication.status.scan.interval | Amount of time to sleep before 
scanning the status section of the replication table for new data<br>**type:** 
TIMEDURATION, **zk mutable:** yes, **default value:** `30s` |
+| <a name="master_server_threadcheck_time"></a> master.server.threadcheck.time 
| The time between adjustments of the server thread pool.<br>**type:** 
TIMEDURATION, **zk mutable:** yes, **default value:** `1s` |
+| <a name="master_server_threads_minimum"></a> master.server.threads.minimum | 
The minimum number of threads to use to handle incoming requests.<br>**type:** 
COUNT, **zk mutable:** yes, **default value:** `20` |
+| <a name="master_status_threadpool_size"></a> master.status.threadpool.size | 
The number of threads to use when fetching the tablet server status for 
balancing.<br>**type:** COUNT, **zk mutable:** yes, **default value:** `1` |
+| <a name="master_tablet_balancer"></a> master.tablet.balancer | The balancer 
class that accumulo will use to make tablet assignment and migration 
decisions.<br>**type:** CLASSNAME, **zk mutable:** yes, **default value:** 
`org.apache.accumulo.server.master.balancer.TableLoadBalancer` |
+| <a name="master_walog_closer_implementation"></a> 
master.walog.closer.implementation | A class that implements a mechansim to 
steal write access to a file<br>**type:** CLASSNAME, **zk mutable:** yes, 
**default value:** `org.apache.accumulo.server.master.recovery.HadoopLogCloser` 
|
+| <a name="monitor_prefix"></a> **monitor.*** | Properties in this category 
affect the behavior of the monitor web server. |
+| <a name="monitor_banner_background"></a> monitor.banner.background | The 
background color of the banner text displayed on the monitor page.<br>**type:** 
STRING, **zk mutable:** yes, **default value:** `#304065` |
+| <a name="monitor_banner_color"></a> monitor.banner.color | The color of the 
banner text displayed on the monitor page.<br>**type:** STRING, **zk mutable:** 
yes, **default value:** `#c4c4c4` |
+| <a name="monitor_banner_text"></a> monitor.banner.text | The banner text 
displayed on the monitor page.<br>**type:** STRING, **zk mutable:** yes, 
**default value:** empty |
+| <a name="monitor_lock_check_interval"></a> monitor.lock.check.interval | The 
amount of time to sleep between checking for the Montior ZooKeeper 
lock<br>**type:** TIMEDURATION, **zk mutable:** no, **default value:** `5s` |
+| <a name="monitor_log_date_format"></a> monitor.log.date.format | The 
SimpleDateFormat string used to configure the date shown on the 'Recent Logs' 
monitor page<br>**type:** STRING, **zk mutable:** no, **default value:** 
`yyyy/MM/dd HH:mm:ss,SSS` |
+| <a name="monitor_port_client"></a> monitor.port.client | The listening port 
for the monitor's http service<br>**type:** PORT, **zk mutable:** no, **default 
value:** `9995` |
+| <a name="monitor_port_log4j"></a> monitor.port.log4j | The listening port 
for the monitor's log4j logging collection.<br>**type:** PORT, **zk mutable:** 
no, **default value:** `4560` |
+| <a name="monitor_ssl_exclude_ciphers"></a> monitor.ssl.exclude.ciphers | A 
comma-separated list of disallowed SSL Ciphers, see 
mmonitor.ssl.include.ciphers to allow ciphers<br>**type:** STRING, **zk 
mutable:** no, **default value:** empty |
+| <a name="monitor_ssl_include_ciphers"></a> monitor.ssl.include.ciphers | A 
comma-separated list of allows SSL Ciphers, see monitor.ssl.exclude.ciphers to 
disallow ciphers<br>**type:** STRING, **zk mutable:** no, **default value:** 
empty |
+| <a name="monitor_ssl_include_protocols"></a> monitor.ssl.include.protocols | 
A comma-separate list of allowed SSL protocols<br>**type:** STRING, **zk 
mutable:** no, **default value:** `TLSv1,TLSv1.1,TLSv1.2` |
+| <a name="monitor_ssl_keyStore"></a> monitor.ssl.keyStore | The keystore for 
enabling monitor SSL.<br>**type:** PATH, **zk mutable:** no, **default value:** 
empty |
+| <a name="monitor_ssl_keyStorePassword"></a> monitor.ssl.keyStorePassword | 
The keystore password for enabling monitor SSL.<br>**type:** STRING, **zk 
mutable:** no, **default value:** empty |
+| <a name="monitor_ssl_keyStoreType"></a> monitor.ssl.keyStoreType | Type of 
SSL keystore<br>**type:** STRING, **zk mutable:** no, **default value:** `jks` |
+| <a name="monitor_ssl_trustStore"></a> monitor.ssl.trustStore | The 
truststore for enabling monitor SSL.<br>**type:** PATH, **zk mutable:** no, 
**default value:** empty |
+| <a name="monitor_ssl_trustStorePassword"></a> monitor.ssl.trustStorePassword 
| The truststore password for enabling monitor SSL.<br>**type:** STRING, **zk 
mutable:** no, **default value:** empty |
+| <a name="monitor_ssl_trustStoreType"></a> monitor.ssl.trustStoreType | Type 
of SSL truststore<br>**type:** STRING, **zk mutable:** no, **default value:** 
`jks` |
+| <a name="replication_prefix"></a> **replication.*** | Properties in this 
category affect the replication of data to other Accumulo instances. |
+| <a name="replication_driver_delay"></a> replication.driver.delay | Amount of 
time to wait before the replication work loop begins in the 
master.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** `0s` 
|
+| <a name="replication_max_unit_size"></a> replication.max.unit.size | Maximum 
size of data to send in a replication message<br>**type:** BYTES, **zk 
mutable:** yes, **default value:** `64M` |
+| <a name="replication_max_work_queue"></a> replication.max.work.queue | Upper 
bound of the number of files queued for replication<br>**type:** COUNT, **zk 
mutable:** yes, **default value:** `1000` |
+| <a name="replication_name"></a> replication.name | Name of this cluster with 
respect to replication. Used to identify this instance from other 
peers<br>**type:** STRING, **zk mutable:** yes, **default value:** empty |
+| <a name="replication_peer_prefix"></a> **replication.peer.*** | Properties 
in this category control what systems data can be replicated to |
+| <a name="replication_peer_keytab_prefix"></a> **replication.peer.keytab.*** 
| The keytab to use when authenticating with the given peer |
+| <a name="replication_peer_password_prefix"></a> 
**replication.peer.password.*** | The password to provide when authenticating 
with the given peer |
+| <a name="replication_peer_user_prefix"></a> **replication.peer.user.*** | 
The username to provide when authenticating with the given peer |
+| <a name="replication_receipt_service_port"></a> 
replication.receipt.service.port | Listen port used by thrift service in 
tserver listening for replication<br>**type:** PORT, **zk mutable:** yes, 
**default value:** `10002` |
+| <a name="replication_receiver_min_threads"></a> 
replication.receiver.min.threads | Minimum number of threads for 
replication<br>**type:** COUNT, **zk mutable:** yes, **default value:** `1` |
+| <a name="replication_receiver_threadcheck_time"></a> 
replication.receiver.threadcheck.time | The time between adjustments of the 
replication thread pool.<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `30s` |
+| <a name="replication_rpc_timeout"></a> replication.rpc.timeout | Amount of 
time for a single replication RPC call to last before failing the attempt. See 
replication.work.attempts.<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `2m` |
+| <a name="replication_trace_percent"></a> replication.trace.percent | The 
sampling percentage to use for replication traces<br>**type:** FRACTION, **zk 
mutable:** yes, **default value:** `0.1` |
+| <a name="replication_work_assigner"></a> replication.work.assigner | 
Replication WorkAssigner implementation to use<br>**type:** CLASSNAME, **zk 
mutable:** yes, **default value:** 
`org.apache.accumulo.master.replication.UnorderedWorkAssigner` |
+| <a name="replication_work_assignment_sleep"></a> 
replication.work.assignment.sleep | Amount of time to sleep between replication 
work assignment<br>**type:** TIMEDURATION, **zk mutable:** yes, **default 
value:** `30s` |
+| <a name="replication_work_attempts"></a> replication.work.attempts | Number 
of attempts to try to replicate some data before giving up and letting it 
naturally be retried later<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `10` |
+| <a name="replication_work_processor_delay"></a> 
replication.work.processor.delay | Amount of time to wait before first checking 
for replication work, not useful outside of tests<br>**type:** TIMEDURATION, 
**zk mutable:** yes, **default value:** `0s` |
+| <a name="replication_work_processor_period"></a> 
replication.work.processor.period | Amount of time to wait before re-checking 
for replication work, not useful outside of tests<br>**type:** TIMEDURATION, 
**zk mutable:** yes, **default value:** `0s` |
+| <a name="replication_worker_threads"></a> replication.worker.threads | Size 
of the threadpool that each tabletserver devotes to replicating 
data<br>**type:** COUNT, **zk mutable:** yes, **default value:** `4` |
+| <a name="rpc_prefix"></a> **rpc.*** | Properties in this category related to 
the configuration of SSL keys for RPC. See also instance.ssl.enabled |
+| <a name="rpc_javax_net_ssl_keyStore"></a> rpc.javax.net.ssl.keyStore | Path 
of the keystore file for the server's private SSL key<br>**type:** PATH, **zk 
mutable:** no, **default value:** empty |
+| <a name="rpc_javax_net_ssl_keyStorePassword"></a> 
rpc.javax.net.ssl.keyStorePassword | Password used to encrypt the SSL private 
keystore. Leave blank to use the Accumulo instance secret<br>**type:** STRING, 
**zk mutable:** no, **default value:** empty |
+| <a name="rpc_javax_net_ssl_keyStoreType"></a> rpc.javax.net.ssl.keyStoreType 
| Type of SSL keystore<br>**type:** STRING, **zk mutable:** no, **default 
value:** `jks` |
+| <a name="rpc_javax_net_ssl_trustStore"></a> rpc.javax.net.ssl.trustStore | 
Path of the truststore file for the root cert<br>**type:** PATH, **zk 
mutable:** no, **default value:** empty |
+| <a name="rpc_javax_net_ssl_trustStorePassword"></a> 
rpc.javax.net.ssl.trustStorePassword | Password used to encrypt the SSL 
truststore. Leave blank to use no password<br>**type:** STRING, **zk mutable:** 
no, **default value:** empty |
+| <a name="rpc_javax_net_ssl_trustStoreType"></a> 
rpc.javax.net.ssl.trustStoreType | Type of SSL truststore<br>**type:** STRING, 
**zk mutable:** no, **default value:** `jks` |
+| <a name="rpc_sasl_qop"></a> rpc.sasl.qop | The quality of protection to be 
used with SASL. Valid values are 'auth', 'auth-int', and 
'auth-conf'<br>**type:** STRING, **zk mutable:** no, **default value:** `auth` |
+| <a name="rpc_ssl_cipher_suites"></a> rpc.ssl.cipher.suites | Comma separated 
list of cipher suites that can be used by accepted connections<br>**type:** 
STRING, **zk mutable:** no, **default value:** empty |
+| <a name="rpc_ssl_client_protocol"></a> rpc.ssl.client.protocol | 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)<br>**type:** 
STRING, **zk mutable:** no, **default value:** `TLSv1` |
+| <a name="rpc_ssl_server_enabled_protocols"></a> 
rpc.ssl.server.enabled.protocols | Comma separated list of protocols that can 
be used to accept connections<br>**type:** STRING, **zk mutable:** no, 
**default value:** `TLSv1,TLSv1.1,TLSv1.2` |
+| <a name="rpc_useJsse"></a> rpc.useJsse | Use JSSE system properties to 
configure SSL rather than the rpc.javax.net.ssl.* Accumulo 
properties<br>**type:** BOOLEAN, **zk mutable:** no, **default value:** `false` 
|
+| <a name="table_prefix"></a> **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. |
+| <a name="table_balancer"></a> table.balancer | This property can be set to 
allow the LoadBalanceByTable load balancer to change the called Load Balancer 
for this table<br>**type:** STRING, **zk mutable:** yes, **default value:** 
`org.apache.accumulo.server.master.balancer.DefaultLoadBalancer` |
+| <a name="table_bloom_enabled"></a> table.bloom.enabled | Use bloom filters 
on this table.<br>**type:** BOOLEAN, **zk mutable:** yes, **default value:** 
`false` |
+| <a name="table_bloom_error_rate"></a> table.bloom.error.rate | Bloom filter 
error rate.<br>**type:** FRACTION, **zk mutable:** yes, **default value:** 
`0.5%` |
+| <a name="table_bloom_hash_type"></a> table.bloom.hash.type | The bloom 
filter hash type<br>**type:** STRING, **zk mutable:** yes, **default value:** 
`murmur` |
+| <a name="table_bloom_key_functor"></a> table.bloom.key.functor | 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. <br>**type:** CLASSNAME, **zk mutable:** yes, 
**default value:** `org.apache.accumulo.core.file.keyfunctor.RowFunctor` |
+| <a name="table_bloom_load_threshold"></a> table.bloom.load.threshold | 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.<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `1` |
+| <a name="table_bloom_size"></a> table.bloom.size | Bloom filter size, as 
number of keys.<br>**type:** COUNT, **zk mutable:** yes, **default value:** 
`1048576` |
+| <a name="table_cache_block_enable"></a> table.cache.block.enable | 
Determines whether file block cache is enabled.<br>**type:** BOOLEAN, **zk 
mutable:** yes, **default value:** `false` |
+| <a name="table_cache_index_enable"></a> table.cache.index.enable | 
Determines whether index cache is enabled.<br>**type:** BOOLEAN, **zk 
mutable:** yes, **default value:** `true` |
+| <a name="table_classpath_context"></a> table.classpath.context | Per table 
classpath context<br>**type:** STRING, **zk mutable:** yes, **default value:** 
empty |
+| <a name="table_compaction_major_everything_idle"></a> 
table.compaction.major.everything.idle | 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.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** `1h` |
+| <a name="table_compaction_major_ratio"></a> table.compaction.major.ratio | 
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.<br>**type:** FRACTION, **zk mutable:** yes, **default 
value:** `3` |
+| <a name="table_compaction_minor_idle"></a> table.compaction.minor.idle | 
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.<br>**type:** TIMEDURATION, **zk mutable:** 
yes, **default value:** `5m` |
+| <a name="table_compaction_minor_logs_threshold"></a> 
table.compaction.minor.logs.threshold | 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<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `3` |
+| <a name="table_compaction_minor_merge_file_size_max"></a> 
table.compaction.minor.merge.file.size.max | The max file size used for a 
merging minor compaction. The default value of 0 disables a max file 
size.<br>**type:** BYTES, **zk mutable:** yes, **default value:** `0` |
+| <a name="table_constraint_prefix"></a> **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.<br>For example:<br>table.constraint.1 = 
org.apache.accumulo.core.constraints.MyCustomConstraint<br>and:<br>table.constraint.2
 = my.package.constraints.MySecondConstraint |
+| <a name="table_custom_prefix"></a> **table.custom.*** | Prefix to be used 
for user defined arbitrary properties. |
+| <a name="table_durability"></a> table.durability | 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.<br>**type:** DURABILITY, **zk 
mutable:** yes, **default value:** `sync` |
+| <a name="table_failures_ignore"></a> table.failures.ignore | 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.<br>**type:** 
BOOLEAN, **zk mutable:** yes, **default value:** `false` |
+| <a name="table_file_blocksize"></a> table.file.blocksize | Overrides the 
hadoop dfs.block.size setting so that files have better query performance. The 
maximum value for this is 2147483647<br>**type:** BYTES, **zk mutable:** yes, 
**default value:** `0B` |
+| <a name="table_file_compress_blocksize"></a> table.file.compress.blocksize | 
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.)<br>**type:** BYTES, **zk mutable:** yes, **default 
value:** `100K` |
+| <a name="table_file_compress_blocksize_index"></a> 
table.file.compress.blocksize.index | 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.)<br>**type:** BYTES, **zk mutable:** yes, 
**default value:** `128K` |
+| <a name="table_file_compress_type"></a> table.file.compress.type | One of 
gz,snappy,lzo,none<br>**type:** STRING, **zk mutable:** yes, **default value:** 
`gz` |
+| <a name="table_file_max"></a> table.file.max | 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.<br>**type:** COUNT, **zk 
mutable:** yes, **default value:** `15` |
+| <a name="table_file_replication"></a> table.file.replication | Determines 
how many replicas to keep of a tables' files in HDFS. When this value is LTE 0, 
HDFS defaults are used.<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `0` |
+| <a name="table_file_summary_maxSize"></a> table.file.summary.maxSize | The 
maximum size summary that will be stored. The number of files that had summary 
data exceeding this threshold is reported by 
Summary.getFileStatistics().getLarge().  When adjusting this consider the 
expected number files with summaries on each tablet server and the summary 
cache size.<br>**type:** BYTES, **zk mutable:** yes, **default value:** `256K` |
+| <a name="table_file_type"></a> table.file.type | Change the type of file a 
table writes<br>**type:** STRING, **zk mutable:** yes, **default value:** `rf` |
+| <a name="table_formatter"></a> table.formatter | The Formatter class to 
apply on results in the shell<br>**type:** STRING, **zk mutable:** yes, 
**default value:** `org.apache.accumulo.core.util.format.DefaultFormatter` |
+| <a name="table_group_prefix"></a> **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.<br>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.<br>Additional group options may be specified 
for a named group by setting table.group.<name>.opt.<key>=<value>. |
+| <a name="table_groups_enabled"></a> table.groups.enabled | A comma separated 
list of locality group names to enable for this table.<br>**type:** STRING, 
**zk mutable:** yes, **default value:** empty |
+| <a name="table_interepreter"></a> table.interepreter | The ScanInterpreter 
class to apply on scan arguments in the shell<br>**type:** STRING, **zk 
mutable:** yes, **default value:** 
`org.apache.accumulo.core.util.interpret.DefaultScanInterpreter` |
+| <a name="table_iterator_prefix"></a> **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:<br> table.iterator.scan.vers = 
10,org.apache.accumulo.core.iterators.VersioningIterator<br> 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.<br>For example, table.iterator.minc.vers.opt.maxVersions = 
3 |
+| <a name="table_iterator_majc_prefix"></a> **table.iterator.majc.*** | 
Convenience prefix to find options for the majc iterator scope |
+| <a name="table_iterator_minc_prefix"></a> **table.iterator.minc.*** | 
Convenience prefix to find options for the minc iterator scope |
+| <a name="table_iterator_scan_prefix"></a> **table.iterator.scan.*** | 
Convenience prefix to find options for the scan iterator scope |
+| <a name="table_majc_compaction_strategy"></a> table.majc.compaction.strategy 
| A customizable major compaction strategy.<br>**type:** CLASSNAME, **zk 
mutable:** yes, **default value:** 
`org.apache.accumulo.tserver.compaction.DefaultCompactionStrategy` |
+| <a name="table_majc_compaction_strategy_opts_prefix"></a> 
**table.majc.compaction.strategy.opts.*** | Properties in this category are 
used to configure the compaction strategy. |
+| <a name="table_replication"></a> table.replication | Is replication enabled 
for the given table<br>**type:** BOOLEAN, **zk mutable:** yes, **default 
value:** `false` |
+| <a name="table_replication_target_prefix"></a> 
**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 |
+| <a name="table_sampler"></a> table.sampler | The name of a class that 
implements org.apache.accumulo.core.Sampler.  Setting this option enables 
storing a sample of data which can be scanned.  Always having a current sample 
can useful for query optimization and data comprehension.   After enabling 
sampling for an existing table, a compaction is needed to compute the sample 
for existing data.  The compact command in the shell has an option to only 
compact files without sample data.<br>**type:** CLASSNAME, **zk mutable:** yes, 
**default value:** empty |
+| <a name="table_sampler_opt_prefix"></a> **table.sampler.opt.*** | The 
property is used to set options for a sampler.  If a sample had two options 
like hasher and modulous, then the two properties 
table.sampler.opt.hasher=${hash algorithm} and 
table.sampler.opt.modulous=${mod} would be set. |
+| <a name="table_scan_max_memory"></a> table.scan.max.memory | 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.<br>**type:** BYTES, **zk mutable:** yes, **default value:** `512K` |
+| <a name="table_security_scan_visibility_default"></a> 
table.security.scan.visibility.default | The security label that will be 
assumed at scan time if an entry does not have a visibility set.<br>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.<br>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.<br>**type:** STRING, **zk mutable:** yes, **default 
value:** empty |
+| <a name="table_split_endrow_size_max"></a> table.split.endrow.size.max | 
Maximum size of end row<br>**type:** BYTES, **zk mutable:** yes, **default 
value:** `10K` |
+| <a name="table_split_threshold"></a> table.split.threshold | When combined 
size of files exceeds this amount a tablet is split.<br>**type:** BYTES, **zk 
mutable:** yes, **default value:** `1G` |
+| <a name="table_summarizer_prefix"></a> **table.summarizer.*** | Prefix for 
configuring summarizers for a table.  Using this prefix multiple summarizers 
can be configured with options for each one. Each summarizer configured should 
have a unique id, this id can be anything. To add a summarizer set 
table.summarizer.<unique id>=<summarizer class name>.  If the summarizer has 
options, then for each option set table.summarizer.<unique 
id>.opt.<key>=<value>. |
+| <a name="table_suspend_duration"></a> table.suspend.duration | For tablets 
belonging to this table: When a tablet server dies, allow the tablet server 
this duration to revive before reassigning its tabletsto other tablet 
servers.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** 
`0s` |
+| <a name="table_walog_enabled"></a> table.walog.enabled | **Deprecated.** 
~~This setting is deprecated.  Use table.durability=none 
instead.~~<br>~~**type:** BOOLEAN~~, ~~**zk mutable:** yes~~, ~~**default 
value:** `true`~~ |
+| <a name="trace_prefix"></a> **trace.*** | Properties in this category affect 
the behavior of distributed tracing. |
+| <a name="trace_password"></a> trace.password | The password for the user 
used to store distributed traces<br>**type:** STRING, **zk mutable:** no, 
**default value:** `secret` |
+| <a name="trace_port_client"></a> trace.port.client | The listening port for 
the trace server<br>**type:** PORT, **zk mutable:** no, **default value:** 
`12234` |
+| <a name="trace_span_receiver_prefix"></a> **trace.span.receiver.*** | Prefix 
for span receiver configuration properties |
+| <a name="trace_span_receivers"></a> trace.span.receivers | A list of span 
receiver classes to send trace spans<br>**type:** CLASSNAMELIST, **zk 
mutable:** no, **default value:** `org.apache.accumulo.tracer.ZooTraceClient` |
+| <a name="trace_table"></a> trace.table | The name of the table to store 
distributed traces<br>**type:** STRING, **zk mutable:** no, **default value:** 
`trace` |
+| <a name="trace_token_property_prefix"></a> **trace.token.property.*** | The 
prefix used to create a token for storing distributed traces. For each property 
required by trace.token.type, place this prefix in front of it. |
+| <a name="trace_token_type"></a> trace.token.type | An AuthenticationToken 
type supported by the authorizer<br>**type:** CLASSNAME, **zk mutable:** no, 
**default value:** 
`org.apache.accumulo.core.client.security.tokens.PasswordToken` |
+| <a name="trace_user"></a> trace.user | The name of the user to store 
distributed traces<br>**type:** STRING, **zk mutable:** no, **default value:** 
`root` |
+| <a name="trace_zookeeper_path"></a> trace.zookeeper.path | The zookeeper 
node where tracers are registered<br>**type:** STRING, **zk mutable:** no, 
**default value:** `/tracers` |
+| <a name="tserver_prefix"></a> **tserver.*** | Properties in this category 
affect the behavior of the tablet servers |
+| <a name="tserver_archive_walogs"></a> tserver.archive.walogs | Keep copies 
of the WALOGs for debugging purposes<br>**type:** BOOLEAN, **zk mutable:** yes, 
**default value:** `false` |
+| <a name="tserver_assignment_concurrent_max"></a> 
tserver.assignment.concurrent.max | The number of threads available to load 
tablets. Recoveries are still performed serially.<br>**type:** COUNT, **zk 
mutable:** yes, **default value:** `2` |
+| <a name="tserver_assignment_duration_warning"></a> 
tserver.assignment.duration.warning | 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<br>**type:** TIMEDURATION, **zk 
mutable:** yes, **default value:** `10m` |
+| <a name="tserver_bloom_load_concurrent_max"></a> 
tserver.bloom.load.concurrent.max | 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.<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `4` |
+| <a name="tserver_bulk_assign_threads"></a> tserver.bulk.assign.threads | 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.<br>**type:** COUNT, **zk 
mutable:** yes, **default value:** `1` |
+| <a name="tserver_bulk_process_threads"></a> tserver.bulk.process.threads | 
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.<br>**type:** COUNT, 
**zk mutable:** yes, **default value:** `1` |
+| <a name="tserver_bulk_retry_max"></a> tserver.bulk.retry.max | The number of 
times the tablet server will attempt to assign a file to a tablet as it 
migrates and splits.<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `5` |
+| <a name="tserver_bulk_timeout"></a> tserver.bulk.timeout | The time to wait 
for a tablet server to process a bulk import request.<br>**type:** 
TIMEDURATION, **zk mutable:** yes, **default value:** `5m` |
+| <a name="tserver_cache_data_size"></a> tserver.cache.data.size | Specifies 
the size of the cache for file data blocks.<br>**type:** MEMORY, **zk 
mutable:** yes, **default value:** `10%` |
+| <a name="tserver_cache_index_size"></a> tserver.cache.index.size | Specifies 
the size of the cache for file indices.<br>**type:** MEMORY, **zk mutable:** 
yes, **default value:** `25%` |
+| <a name="tserver_cache_policy"></a> tserver.cache.policy | Specifies the 
eviction policy of the file data caches (LRU or TinyLFU).<br>**type:** STRING, 
**zk mutable:** yes, **default value:** `LRU` |
+| <a name="tserver_cache_summary_size"></a> tserver.cache.summary.size | 
Specifies the size of the cache for summary data on each tablet 
server.<br>**type:** MEMORY, **zk mutable:** yes, **default value:** `10%` |
+| <a name="tserver_client_timeout"></a> tserver.client.timeout | Time to wait 
for clients to continue scans before closing a session.<br>**type:** 
TIMEDURATION, **zk mutable:** yes, **default value:** `3s` |
+| <a name="tserver_compaction_major_concurrent_max"></a> 
tserver.compaction.major.concurrent.max | The maximum number of concurrent 
major compactions for a tablet server<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `3` |
+| <a name="tserver_compaction_major_delay"></a> tserver.compaction.major.delay 
| Time a tablet server will sleep between checking which tablets need 
compaction.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** 
`30s` |
+| <a name="tserver_compaction_major_thread_files_open_max"></a> 
tserver.compaction.major.thread.files.open.max | Max number of files a major 
compaction thread can open at once. <br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `10` |
+| <a name="tserver_compaction_major_throughput"></a> 
tserver.compaction.major.throughput | Maximum number of bytes to read or write 
per second over all major compactions on a TabletServer, or 0B for 
unlimited.<br>**type:** BYTES, **zk mutable:** yes, **default value:** `0B` |
+| <a name="tserver_compaction_major_trace_percent"></a> 
tserver.compaction.major.trace.percent | The percent of major compactions to 
trace<br>**type:** FRACTION, **zk mutable:** yes, **default value:** `0.1` |
+| <a name="tserver_compaction_minor_concurrent_max"></a> 
tserver.compaction.minor.concurrent.max | The maximum number of concurrent 
minor compactions for a tablet server<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `4` |
+| <a name="tserver_compaction_minor_trace_percent"></a> 
tserver.compaction.minor.trace.percent | The percent of minor compactions to 
trace<br>**type:** FRACTION, **zk mutable:** yes, **default value:** `0.1` |
+| <a name="tserver_compaction_warn_time"></a> tserver.compaction.warn.time | 
When a compaction has not made progress for this time period, a warning will be 
logged<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** `10m` 
|
+| <a name="tserver_default_blocksize"></a> tserver.default.blocksize | 
Specifies a default blocksize for the tserver caches<br>**type:** BYTES, **zk 
mutable:** yes, **default value:** `1M` |
+| <a name="tserver_dir_memdump"></a> tserver.dir.memdump | 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.<br>**type:** PATH, **zk mutable:** yes, **default value:** 
`/tmp` |
+| <a name="tserver_files_open_idle"></a> tserver.files.open.idle | 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.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** `1m` 
|
+| <a name="tserver_hold_time_max"></a> tserver.hold.time.max | 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.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** 
`5m` |
+| <a name="tserver_memory_manager"></a> tserver.memory.manager | An 
implementation of MemoryManger that accumulo will use.<br>**type:** CLASSNAME, 
**zk mutable:** yes, **default value:** 
`org.apache.accumulo.server.tabletserver.LargestFirstMemoryManager` |
+| <a name="tserver_memory_maps_max"></a> tserver.memory.maps.max | 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.<br>**type:** MEMORY, **zk mutable:** yes, **default value:** `33%` |
+| <a name="tserver_memory_maps_native_enabled"></a> 
tserver.memory.maps.native.enabled | 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.<br>**type:** BOOLEAN, **zk mutable:** yes but 
requires restart of the tserver, **default value:** `true` |
+| <a name="tserver_metadata_readahead_concurrent_max"></a> 
tserver.metadata.readahead.concurrent.max | The maximum number of concurrent 
metadata read ahead that will execute.<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `8` |
+| <a name="tserver_migrations_concurrent_max"></a> 
tserver.migrations.concurrent.max | The maximum number of concurrent tablet 
migrations for a tablet server<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `1` |
+| <a name="tserver_monitor_fs"></a> tserver.monitor.fs | 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.<br>**type:** BOOLEAN, **zk mutable:** yes, **default value:** `true` |
+| <a name="tserver_mutation_queue_max"></a> tserver.mutation.queue.max | 
**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.~~<br>~~**type:** BYTES~~, ~~**zk 
mutable:** yes~~, ~~**default value:** `1M`~~ |
+| <a name="tserver_port_client"></a> tserver.port.client | The port used for 
handling client connections on the tablet servers<br>**type:** PORT, **zk 
mutable:** yes but requires restart of the tserver, **default value:** `9997` |
+| <a name="tserver_port_search"></a> tserver.port.search | if the ports above 
are in use, search higher ports until one is available<br>**type:** BOOLEAN, 
**zk mutable:** yes, **default value:** `false` |
+| <a name="tserver_readahead_concurrent_max"></a> 
tserver.readahead.concurrent.max | 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.<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `16` |
+| <a name="tserver_recovery_concurrent_max"></a> 
tserver.recovery.concurrent.max | The maximum number of threads to use to sort 
logs during recovery<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `2` |
+| <a name="tserver_replication_batchwriter_replayer_memory"></a> 
tserver.replication.batchwriter.replayer.memory | Memory to provide to 
batchwriter to replay mutations for replication<br>**type:** BYTES, **zk 
mutable:** yes, **default value:** `50M` |
+| <a name="tserver_replication_default_replayer"></a> 
tserver.replication.default.replayer | Default AccumuloReplicationReplayer 
implementation<br>**type:** CLASSNAME, **zk mutable:** yes, **default value:** 
`org.apache.accumulo.tserver.replication.BatchWriterReplicationReplayer` |
+| <a name="tserver_replication_replayer_prefix"></a> 
**tserver.replication.replayer.*** | Allows configuration of implementation 
used to apply replicated data |
+| <a name="tserver_scan_files_open_max"></a> tserver.scan.files.open.max | 
Maximum total files that all tablets in a tablet server can open for scans. 
<br>**type:** COUNT, **zk mutable:** yes but requires restart of the tserver, 
**default value:** `100` |
+| <a name="tserver_server_message_size_max"></a> 
tserver.server.message.size.max | The maximum size of a message that can be 
sent to a tablet server.<br>**type:** BYTES, **zk mutable:** yes, **default 
value:** `1G` |
+| <a name="tserver_server_threadcheck_time"></a> 
tserver.server.threadcheck.time | The time between adjustments of the server 
thread pool.<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** 
`1s` |
+| <a name="tserver_server_threads_minimum"></a> tserver.server.threads.minimum 
| The minimum number of threads to use to handle incoming 
requests.<br>**type:** COUNT, **zk mutable:** yes, **default value:** `20` |
+| <a name="tserver_session_idle_max"></a> tserver.session.idle.max | When a 
tablet server's SimpleTimer thread triggers to check idle sessions, this 
configurable option will be used to evaluate scan sessions to determine if they 
can be closed due to inactivity<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `1m` |
+| <a name="tserver_session_update_idle_max"></a> 
tserver.session.update.idle.max | When a tablet server's SimpleTimer thread 
triggers to check idle sessions, this configurable option will be used to 
evaluate update sessions to determine if they can be closed due to 
inactivity<br>**type:** TIMEDURATION, **zk mutable:** yes, **default value:** 
`1m` |
+| <a name="tserver_slow_flush_time"></a> tserver.slow.flush.time | If a flush 
to the write-ahead log takes longer than this period of time, debugging 
information will written, and may result in a log rollover.<br>**type:** 
TIMEDURATION, **zk mutable:** yes, **default value:** `100ms` |
+| <a name="tserver_sort_buffer_size"></a> tserver.sort.buffer.size | The 
amount of memory to use when sorting logs during recovery.<br>**type:** MEMORY, 
**zk mutable:** yes, **default value:** `10%` |
+| <a name="tserver_summary_partition_threads"></a> 
tserver.summary.partition.threads | Summary data must be retrieved from files.  
For a large number of files, the files are broken into partitions of 100K 
files.  This setting determines how many of these groups of 100K files will be 
processed concurrently.<br>**type:** COUNT, **zk mutable:** yes, **default 
value:** `10` |
+| <a name="tserver_summary_remote_threads"></a> tserver.summary.remote.threads 
| For a partitioned group of 100K files, those files are grouped by tablet 
server.  Then a remote tablet server is asked to gather summary data.  This 
setting determines how many concurrent request are made per 
partition.<br>**type:** COUNT, **zk mutable:** yes, **default value:** `128` |
+| <a name="tserver_summary_retrieval_threads"></a> 
tserver.summary.retrieval.threads | The number of threads on each tablet server 
available to retrieve summary data, that is not currently in cache, from 
RFiles.<br>**type:** COUNT, **zk mutable:** yes, **default value:** `10` |
+| <a name="tserver_tablet_split_midpoint_files_max"></a> 
tserver.tablet.split.midpoint.files.max | 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.<br>**type:** COUNT, **zk mutable:** yes, **default value:** 
`300` |
+| <a name="tserver_total_mutation_queue_max"></a> 
tserver.total.mutation.queue.max | The amount of memory used to store 
write-ahead-log mutations before flushing them.<br>**type:** MEMORY, **zk 
mutable:** yes, **default value:** `5%` |
+| <a name="tserver_wal_blocksize"></a> tserver.wal.blocksize | 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)<br>**type:** BYTES, 
**zk mutable:** yes, **default value:** `0` |
+| <a name="tserver_wal_replication"></a> tserver.wal.replication | The 
replication to use when writing the Write-Ahead log to HDFS. If zero, it will 
use the HDFS default replication setting.<br>**type:** COUNT, **zk mutable:** 
yes, **default value:** `0` |
+| <a name="tserver_wal_sync"></a> tserver.wal.sync | Use the SYNC_BLOCK create 
flag to sync WAL writes to disk. Prevents problems recovering from sudden 
system resets.<br>**type:** BOOLEAN, **zk mutable:** yes, **default value:** 
`true` |
+| <a name="tserver_wal_sync_method"></a> tserver.wal.sync.method | 
**Deprecated.** ~~This property is deprecated. Use table.durability 
instead.~~<br>~~**type:** STRING~~, ~~**zk mutable:** yes~~, ~~**default 
value:** `hsync`~~ |
+| <a name="tserver_walog_max_age"></a> tserver.walog.max.age | The maximum age 
for each write-ahead log.<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `24h` |
+| <a name="tserver_walog_max_size"></a> tserver.walog.max.size | The maximum 
size for each write-ahead log. See comment for property 
tserver.memory.maps.max<br>**type:** BYTES, **zk mutable:** yes, **default 
value:** `1g` |
+| <a name="tserver_walog_maximum_wait_duration"></a> 
tserver.walog.maximum.wait.duration | The maximum amount of time to wait after 
a failure to create a WAL file.<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `5m` |
+| <a name="tserver_walog_tolerated_creation_failures"></a> 
tserver.walog.tolerated.creation.failures | 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.<br>**type:** COUNT, **zk mutable:** yes, 
**default value:** `50` |
+| <a name="tserver_walog_tolerated_wait_increment"></a> 
tserver.walog.tolerated.wait.increment | The amount of time to wait between 
failures to create a WALog.<br>**type:** TIMEDURATION, **zk mutable:** yes, 
**default value:** `1000ms` |
+| <a name="tserver_workq_threads"></a> tserver.workq.threads | The number of 
threads for the distributed work queue. These threads are used for copying 
failed bulk files.<br>**type:** COUNT, **zk mutable:** yes, **default value:** 
`2` |
+
+### Property Types
+
+| Type | Description |
+|--------------|-------------|
+| duration | A non-negative integer optionally followed by a unit of time 
(whitespace disallowed), as in 30s.<br>If no unit of time is specified, seconds 
are assumed. Valid units are 'ms', 's', 'm', 'h' for milliseconds, seconds, 
minutes, and hours.<br>Examples of valid durations are '600', '30s', '45m', 
'30000ms', '3d', and '1h'.<br>Examples of invalid durations are '1w', '1h30m', 
'1s 200ms', 'ms', '', and 'a'.<br>Unless otherwise stated, the max value for 
the duration represented in milliseconds is 9223372036854775807 |
+| bytes | A positive integer optionally followed by a unit of memory 
(whitespace disallowed).<br>If no unit is specified, bytes are assumed. Valid 
units are 'B', 'K', 'M' or 'G' for bytes, kilobytes, megabytes, 
gigabytes.<br>Examples of valid memories are '1024', '20B', '100K', '1500M', 
'2G', '20%'.<br>Examples of invalid memories are '1M500K', '1M 2K', '1MB', 
'1.5G', '1,024K', '', and 'a'.<br>Unless otherwise stated, the max value for 
the memory represented in bytes is 9223372036854775807 |
+| memory | A positive integer optionally followed by a unit of memory or a 
percentage (whitespace disallowed).<br>If a percentage is specified, memory 
will be a percentage of the max memory allocated to a Java process (set by the 
JVM option -Xmx).<br>If no unit is specified, bytes are assumed. Valid units 
are 'B', 'K', 'M', 'G', '%' for bytes, kilobytes, megabytes, gigabytes, and 
percentage.<br>Examples of valid memories are '1024', '20B', '100K', '1500M', 
'2G', '20%'.<br>Examples of invalid memories are '1M500K', '1M 2K', '1MB', 
'1.5G', '1,024K', '', and 'a'.<br>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.<br>Examples of valid host lists are 
'localhost:2000,www.example.com,10.10.1.1:500' and 'localhost'.<br>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),<br>zero to indicate any open 
ephemeral port, or a range of positive integers specified as M-N |
+| 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.<br>Examples of 
valid fractions/percentages are '10', '1000%', '0.05', '5%', '0.2%', 
'0.0005'.<br>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.<br>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.<br>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' (case-insensitive) |
+| uri | A valid URI |

http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/7cc70b2e/_docs-unreleased/administration/fate.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/administration/fate.md 
b/_docs-unreleased/administration/fate.md
new file mode 100644
index 0000000..ce0647e
--- /dev/null
+++ b/_docs-unreleased/administration/fate.md
@@ -0,0 +1,73 @@
+---
+title: FATE
+category: administration
+order: 6
+---
+
+Accumulo must implement a number of distributed, multi-step operations to 
support
+the client API. Creating a new table is a simple example of an atomic client 
call
+which requires multiple steps in the implementation: get a unique table ID, 
configure
+default table permissions, populate information in ZooKeeper to record the 
table's
+existence, create directories in HDFS for the table's data, etc. Implementing 
these
+steps in a way that is tolerant to node failure and other concurrent 
operations is
+very difficult to achieve. Accumulo includes a Fault-Tolerant Executor (FATE) 
which
+is widely used server-side to implement the client API safely and correctly.
+
+Fault-Tolerant Executor (FATE) is the implementation detail which ensures that 
tables in creation when the
+Master dies will be successfully created when another Master process is 
started.
+This alleviates the need for any external tools to correct some bad state -- 
Accumulo can
+undo the failure and self-heal without any external intervention.
+
+## Overview
+
+FATE consists of two primary components: a repeatable, persisted operation 
(REPO), a storage
+layer for REPOs and an execution system to run REPOs. Accumulo uses ZooKeeper 
as the storage
+layer for FATE and the Accumulo Master acts as the execution system to run 
REPOs.
+
+The important characteristic of REPOs are that they implemented in a way that 
is idempotent:
+every operation must be able to undo or replay a partial execution of itself. 
Requiring the
+implementation of the operation to support this functional greatly simplifies 
the execution
+of these operations. This property is also what guarantees safety in light of 
failure conditions.
+
+## Administration
+
+Sometimes, it is useful to inspect the current FATE operations, both pending 
and executing.
+For example, a command that is not completing could be blocked on the 
execution of another
+operation. Accumulo provides an Accumulo shell command to interact with fate.
+
+The `fate` shell command accepts a number of arguments for different 
functionality:
+`list`/`print`, `fail`, `delete`, `dump`.
+
+### List/Print
+
+Without any additional arguments, this command will print all operations that 
still exist in
+the FATE store (ZooKeeper). This will include active, pending, and completed 
operations (completed
+operations are lazily removed from the store). Each operation includes a 
unique "transaction ID", the
+state of the operation (e.g. `NEW`, `IN_PROGRESS`, `FAILED`), any locks the
+transaction actively holds and any locks it is waiting to acquire.
+
+This option can also accept transaction IDs which will restrict the list of 
transactions shown.
+
+### Fail
+
+This command can be used to manually fail a FATE transaction and requires a 
transaction ID
+as an argument. Failing an operation is not a normal procedure and should only 
be performed
+by an administrator who understands the implications of why they are failing 
the operation.
+
+### Delete
+
+This command requires a transaction ID and will delete any locks that the 
transaction
+holds. Like the fail command, this command should only be used in extreme 
circumstances
+by an administrator that understands the implications of the command they are 
about to
+invoke. It is not normal to invoke this command.
+
+### Dump
+
+This command accepts zero more transaction IDs.  If given no transaction IDs,
+it will dump all active transactions.  A FATE operations is compromised as a
+sequence of REPOs.  In order to start a FATE transaction, a REPO is pushed onto
+a per transaction REPO stack.  The top of the stack always contains the next
+REPO the FATE transaction should execute.  When a REPO is successful it may
+return another REPO which is pushed on the stack.  The `dump` command will
+print all of the REPOs on each transactions stack.  The REPOs are serialized to
+JSON in order to make them human readable.

Reply via email to