You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mw...@apache.org on 2018/11/01 18:37:24 UTC

[accumulo-website] branch master updated: Created documentation for upgrading to 2.0 (#126)

This is an automated email from the ASF dual-hosted git repository.

mwalch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 99166db  Created documentation for upgrading to 2.0 (#126)
99166db is described below

commit 99166db5833072bb89b060a0aa80c13c9a0105c9
Author: Mike Walch <mw...@apache.org>
AuthorDate: Thu Nov 1 14:37:19 2018 -0400

    Created documentation for upgrading to 2.0 (#126)
    
    * Updated lexicoder docs in features
---
 _docs-2/administration/upgrading.md | 81 ++++++++++++++++++++++++++++++++++++-
 _docs-2/getting-started/features.md |  8 +---
 2 files changed, 82 insertions(+), 7 deletions(-)

diff --git a/_docs-2/administration/upgrading.md b/_docs-2/administration/upgrading.md
index ad2e3d5..7489e19 100644
--- a/_docs-2/administration/upgrading.md
+++ b/_docs-2/administration/upgrading.md
@@ -4,6 +4,80 @@ category: administration
 order: 7
 ---
 
+## Upgrading from 1.8/9 to 2.0
+
+Follow the steps below to upgrade your Accumulo instance and client to 2.0.
+
+### Upgrade Accumulo instance
+
+**IMPORTANT!** Before upgrading to Accumulo 2.0, you will need to upgrade to Java 8 and Hadoop 3.x.
+
+Upgrading to Accumulo 2.0 is done by stopping Accumulo 1.8/9 and starting Accumulo 2.0.
+
+Before stopping Accumulo 1.8/9, install Accumulo 2.0 and configure it by following the [2.0 install instructions]({% durl getting-started/quick-install %}).
+
+There are several changes to scripts and configuration in 2.0 so be careful when using configuration or automated setup designed for 1.8/9.
+Below are some changes in 2.0 that you should be aware of:
+* `accumulo.properties` has replaced `accumulo-site.xml`. You can either convert `accumulo-site.xml` by hand
+  from XML to properties or use the following Accumulo command.
+  ```
+  accumulo convert-config -x old/accumulo-site.xml -p new/accumulo.properties
+  ```
+* `accumulo-client.properties` has replaced `client.conf`. The [client properties]({% durl configuration/client-properties %})
+  in the new file are different so take care when customizing.
+* `accumulo-cluster` script has replaced the `start-all.sh` & `stop-all.sh` scripts.
+   - Default host files (i.e `masters`, `monitor`, `gc`) are no longer in `conf/` directory of tarball but can be created using `accumulo-cluster create-config`
+   - Tablet server hosts must be listed in a `tservers` file instead of a `slaves` file. To minimize confusion, Accumulo will not start if the old `slaves` file is present.
+* `accumulo-service` script can be used to start/stop Accumulo services (i.e master, tablet server, monitor) on a single node.
+    - Can be used even if Accumulo was started using `accumulo-cluster` script.
+* `accumulo-env.sh` constructs environment variables (such as `JAVA_OPTS` and `CLASSPATH`) used when running Accumulo processes
+    - This file was used in Accumulo 1.x but has changed signficantly for 2.0
+    - Environment variables (such as `$cmd`, `$bin`, `$conf`) are set before `accumulo-env.sh` is loaded and can be used to customize environment.
+    - The `JAVA_OPTS` variable is constructed in `accumulo-env.sh` to pass command-line arguments to the `java` command that the starts Accumulo processes
+      (i.e. `java $JAVA_OPTS main.class.for.$cmd`).
+    - The `CLASSPATH` variable sets the Java classpath used when running Accumulo processes. It can be modified to upgrade dependencies or use vendor-specific
+      distributions of Hadoop.
+* Logging is configured in `accumulo-env.sh` for Accumulo processes. The following log4j configuration files in the `conf/` directory will be used if
+  `accumulo-env.sh` is not modified. These files can be modified to turn on/off logging for Accumulo processes:
+    - `log4j-service.properties` for all Accumulo services (except monitor)
+    - `logj4-monitor.properties` for Accumulo monitor
+    - `log4j.properties` for Accumulo clients and commands
+* Run the command `accumulo shell` to access the shell using configuration in `conf/accumulo-client.properties`
+
+When your Accumulo 2.0 installation is properly configured, stop Accumulo 1.8/9 and start Accumulo 2.0:
+
+```
+./accumulo-1.9.2/bin/stop-all.sh
+./accumulo-2.0.0/bin/accumulo-cluster start
+```
+It is recommended that users test this upgrade on development or test clusters before attempting it on production clusters.
+
+### Upgrade Accumulo clients
+
+There several client API changes in 2.0. In most cases, new API was introduced and the old API was only deprecated. While it is recommended
+that users start using the new API, the old API will continue to be supported through 2.x.
+
+Below is a list of client API changes that users are required to make for 2.0:
+
+* Update your pom.xml use Accumulo 2.0. Also, update any Hadoop & ZooKeeper dependencies in your pom.xml to match the versions runing on your cluster.
+  ```xml
+  <dependency>
+    <groupId>org.apache.accumulo</groupId>
+    <artifactId>accumulo-core</artifactId>
+    <version>2.0.0</version>
+  </dependency>
+  ```
+* ClientConfiguration objects can no longer be ceated using `new ClientConfiguration()`.
+   * Use `ClientConfiguration.create()` instead
+* Some API deprecated in 1.x releases was dropped
+* Aggregators have been removed
+
+Below is a list of recommended client API changes:
+
+* The API for [creating Accumulo clients]({% durl getting-started/clients#creating-an-accumulo-client %}) has changed in 2.0.
+  * The old API using [ZooKeeeperInstance], [Connector], [Instance], and [ClientConfiguration] has been deprecated.
+  * [Connector] objects can be created from an [AccumuloClient] object using [Connector.from()]
+
 ## Upgrading from 1.7 to 1.8
 
 Upgrades from 1.7 to 1.8 are possible with little effort as no changes were made at the data layer and RPC changes were made in a backwards-compatible way. The recommended way is to stop Accumulo 1.7, perform the Accumulo upgrade to 1.8, and then start 1.8. Like previous versions, after 1.8 is started on a 1.7 instance, a one-time upgrade will happen by the Master which will prevent a downgrade back to 1.7. Upgrades are still one way. Upgrades from versions prior to 1.7 to 1.8 should fol [...]
@@ -106,4 +180,9 @@ This happens automatically the first time Accumulo 1.5 is started.
 
 [FATE]: https://accumulo.apache.org/1.7/accumulo_user_manual.html#_fault_tolerant_executor_fate
 [ACCUMULO-4496]: https://issues.apache.org/jira/browse/ACCUMULO-4496
-
+[ZooKeeeperInstance]: {% jurl org.apache.accumulo.core.client.ZooKeeperInstance %}
+[Connector]: {% jurl org.apache.accumulo.core.client.Connector %}
+[Instance]: {% jurl org.apache.accumulo.core.client.Instance %}
+[ClientConfiguration]: {% jurl org.apache.accumulo.core.client.ClientConfiguration %}
+[AccumuloClient]: {% jurl org.apache.accumulo.core.client.AccumuloClient %}
+[Connector.from()]: {% jurl org.apache.accumulo.core.client.Connector#from-org.apache.accumulo.core.client.AccumuloClient- %}
diff --git a/_docs-2/getting-started/features.md b/_docs-2/getting-started/features.md
index 4fd5d9f..bf4027d 100644
--- a/_docs-2/getting-started/features.md
+++ b/_docs-2/getting-started/features.md
@@ -261,12 +261,8 @@ the Javadoc for [ConditionalMutation] and [ConditionalWriter].
 
 ### Lexicoders
 
-Common boilerplate code that exists when interacting with Accumulo is the conversion
-of Java objects to lexicographically sorted bytes, e.g. ensure that the byte representation
-of the number 9 sorts before the byte representation of the number 11. Version 1.6.0 introduced
-Lexicoders which have numerous implementations that support for efficient translation from common
-Java primitives to byte arrays and vice versa. These classes can greatly reduce the burden in
-re-implementing common programming mistakes in encoding.
+[Lexicoders]({% durl getting-started/table_design#lexicoders) (since 1.6.0) help encode data (i.e numbers, dates)
+into Accumulo keys in a way that their natural sort order is preserved.
 
 ## Extensible Behaviors