You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by GitBox <gi...@apache.org> on 2018/11/01 18:37:21 UTC

[GitHub] mikewalch closed pull request #126: Created documentation for upgrading to 2.0

mikewalch closed pull request #126: Created documentation for upgrading to 2.0
URL: https://github.com/apache/accumulo-website/pull/126
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/_docs-2/administration/upgrading.md b/_docs-2/administration/upgrading.md
index ad2e3d52..7489e196 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 follow the below path to 1.7 and then perform the upgrade to 1.8 – direct upgrades to 1.8 for versions other than 1.7 are untested.
@@ -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 4fd5d9f1..bf4027d5 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
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services