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 2017/06/02 18:03:05 UTC
[1/2] accumulo-website git commit: Several minor updates to
documenation
Repository: accumulo-website
Updated Branches:
refs/heads/asf-site db2398b4b -> c1dde8007
refs/heads/master 883f56620 -> 26f0eb301
Several minor updates to documenation
* Fixed java example code whitespace
* Improved linking in clients.md
* Fixed xml example whitespace
Project: http://git-wip-us.apache.org/repos/asf/accumulo-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo-website/commit/26f0eb30
Tree: http://git-wip-us.apache.org/repos/asf/accumulo-website/tree/26f0eb30
Diff: http://git-wip-us.apache.org/repos/asf/accumulo-website/diff/26f0eb30
Branch: refs/heads/master
Commit: 26f0eb301b066bf7ec1d927c3fb11aa8c9568957
Parents: 883f566
Author: Mike Walch <mw...@apache.org>
Authored: Fri Jun 2 13:59:01 2017 -0400
Committer: Mike Walch <mw...@apache.org>
Committed: Fri Jun 2 13:59:01 2017 -0400
----------------------------------------------------------------------
_docs-unreleased/administration/tracing.md | 48 ++++++++---------
_docs-unreleased/development/iterators.md | 56 ++++++++++----------
_docs-unreleased/getting-started/clients.md | 38 +++++++------
.../getting-started/table_configuration.md | 3 +-
.../getting-started/table_design.md | 8 +--
5 files changed, 74 insertions(+), 79 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/26f0eb30/_docs-unreleased/administration/tracing.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/administration/tracing.md b/_docs-unreleased/administration/tracing.md
index bce8d0b..1fbc2ac 100644
--- a/_docs-unreleased/administration/tracing.md
+++ b/_docs-unreleased/administration/tracing.md
@@ -85,22 +85,22 @@ zookeeper path defaults to /tracers. An example of configuring
Hadoop to send traces to ZooTraceClient is
```xml
- <property>
- <name>hadoop.htrace.spanreceiver.classes</name>
- <value>org.apache.accumulo.core.trace.ZooTraceClient</value>
- </property>
- <property>
- <name>hadoop.htrace.tracer.zookeeper.host</name>
- <value>zookeeperHost:2181</value>
- </property>
- <property>
- <name>hadoop.htrace.tracer.zookeeper.path</name>
- <value>/tracers</value>
- </property>
- <property>
- <name>hadoop.htrace.tracer.span.min.ms</name>
- <value>1</value>
- </property>
+<property>
+ <name>hadoop.htrace.spanreceiver.classes</name>
+ <value>org.apache.accumulo.core.trace.ZooTraceClient</value>
+</property>
+<property>
+ <name>hadoop.htrace.tracer.zookeeper.host</name>
+ <value>zookeeperHost:2181</value>
+</property>
+<property>
+ <name>hadoop.htrace.tracer.zookeeper.path</name>
+ <value>/tracers</value>
+</property>
+<property>
+ <name>hadoop.htrace.tracer.span.min.ms</name>
+ <value>1</value>
+</property>
```
The accumulo-core, accumulo-tracer, accumulo-fate and libthrift
@@ -151,14 +151,14 @@ be placed in the ClientConfiguration (if applicable) and Accumulo's `accumulo-si
Two such properties for ZipkinSpanReceiver, listed with their default values, are
```xml
- <property>
- <name>trace.span.receiver.zipkin.collector-hostname</name>
- <value>localhost</value>
- </property>
- <property>
- <name>trace.span.receiver.zipkin.collector-port</name>
- <value>9410</value>
- </property>
+<property>
+ <name>trace.span.receiver.zipkin.collector-hostname</name>
+ <value>localhost</value>
+</property>
+<property>
+ <name>trace.span.receiver.zipkin.collector-port</name>
+ <value>9410</value>
+</property>
```
### Instrumenting a Client
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/26f0eb30/_docs-unreleased/development/iterators.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/development/iterators.md b/_docs-unreleased/development/iterators.md
index ff9d56d..11e30b5 100644
--- a/_docs-unreleased/development/iterators.md
+++ b/_docs-unreleased/development/iterators.md
@@ -177,32 +177,32 @@ The following code is a general outline for how TabletServers invoke Iterators.
```java
List<KeyValue> batch;
Range range = getRangeFromClient();
-while(!overSizeLimit(batch)){
- SortedKeyValueIterator source = getSystemIterator();
-
- for(String clzName : getUserIterators()){
- Class<?> clz = Class.forName(clzName);
- SortedKeyValueIterator iter = (SortedKeyValueIterator) clz.newInstance();
- iter.init(source, opts, env);
- source = iter;
- }
-
- // read a batch of data to return to client
- // the last iterator, the "top"
- SortedKeyValueIterator topIter = source;
- topIter.seek(getRangeFromUser(), ...)
-
- while(topIter.hasTop() && !overSizeLimit(batch)){
- key = topIter.getTopKey()
- val = topIter.getTopValue()
- batch.add(new KeyValue(key, val)
- if(systemDataSourcesChanged()){
- // code does not show isolation case, which will
- // keep using same data sources until a row boundry is hit
- range = new Range(key, false, range.endKey(), range.endKeyInclusive());
- break;
- }
- }
+while (!overSizeLimit(batch)) {
+ SortedKeyValueIterator source = getSystemIterator();
+
+ for (String clzName : getUserIterators()) {
+ Class<?> clz = Class.forName(clzName);
+ SortedKeyValueIterator iter = (SortedKeyValueIterator) clz.newInstance();
+ iter.init(source, opts, env);
+ source = iter;
+ }
+
+ // read a batch of data to return to client
+ // the last iterator, the "top"
+ SortedKeyValueIterator topIter = source;
+ topIter.seek(getRangeFromUser(), ...)
+
+ while (topIter.hasTop() && !overSizeLimit(batch)) {
+ key = topIter.getTopKey()
+ val = topIter.getTopValue()
+ batch.add(new KeyValue(key, val)
+ if (systemDataSourcesChanged()) {
+ // code does not show isolation case, which will
+ // keep using same data sources until a row boundry is hit
+ range = new Range(key, false, range.endKey(), range.endKeyInclusive());
+ break;
+ }
+ }
}
//return batch of key values to client
```
@@ -220,10 +220,8 @@ lastKeyReturned = batch.get(batch.size() - 1).getKey();
// Eventually client comes back
// Setup as before...
-
Range userRange = getRangeFromUser();
-Range actualRange = new Range(lastKeyReturned, false
- userRange.getEndKey(), userRange.isEndKeyInclusive());
+Range actualRange = new Range(lastKeyReturned, false, userRange.getEndKey(), userRange.isEndKeyInclusive());
// Use the actualRange, not the user provided one
topIter.seek(actualRange);
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/26f0eb30/_docs-unreleased/getting-started/clients.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/getting-started/clients.md b/_docs-unreleased/getting-started/clients.md
index ff4fdbd..8596c2e 100644
--- a/_docs-unreleased/getting-started/clients.md
+++ b/_docs-unreleased/getting-started/clients.md
@@ -43,7 +43,8 @@ the accumulo command.
### Using the 'accumulo-util hadoop-jar' command
If you are writing map reduce job that accesses Accumulo, then you can use
-`accumulo-util hadoop-jar` to run those jobs. See the map reduce example.
+`accumulo-util hadoop-jar` to run those jobs. See the [MapReduce example][mapred-example]
+for more information.
## Connecting
@@ -116,13 +117,11 @@ BatchWriterConfig config = new BatchWriterConfig();
config.setMaxMemory(10000000L); // bytes available to batchwriter for buffering mutations
BatchWriter writer = conn.createBatchWriter("table", config)
-
writer.addMutation(mutation);
-
writer.close();
```
-For more example code, see the [batch writing and scanning example](https://github.com/apache/accumulo-examples/blob/master/docs/batch.md).
+For more example code, see the [batch writing and scanning example][batch].
### ConditionalWriter
@@ -141,14 +140,13 @@ mutation when a column is less than 5.
In the case when a tablet server dies after a client sent a conditional
mutation, its not known if the mutation was applied or not. When this happens
-the ConditionalWriter reports a status of UNKNOWN for the ConditionalMutation.
+the [ConditionalWriter] reports a status of UNKNOWN for the ConditionalMutation.
In many cases this situation can be dealt with by simply reading the row again
and possibly sending another conditional mutation. If this is not sufficient,
then a higher level of abstraction can be built by storing transactional
information within a row.
-See the [reservations example](https://github.com/apache/accumulo-examples/blob/master/docs/reservations.md)
-for example code that uses the conditional writer.
+See the [reservations example][reservations] for example code that uses the [ConditionalWriter].
### Durability
@@ -196,15 +194,13 @@ to return a subset of the columns available.
// specify which visibilities we are allowed to see
Authorizations auths = new Authorizations("public");
-Scanner scan =
- conn.createScanner("table", auths);
-
+Scanner scan = conn.createScanner("table", auths);
scan.setRange(new Range("harry","john"));
scan.fetchColumnFamily(new Text("attributes"));
-for(Entry<Key,Value> entry : scan) {
- Text row = entry.getKey().getRow();
- Value value = entry.getValue();
+for (Entry<Key,Value> entry : scan) {
+ Text row = entry.getKey().getRow();
+ Value value = entry.getValue();
}
```
@@ -229,8 +225,7 @@ crash a tablet server. By default rows are buffered in memory, but the user
can easily supply their own buffer if they wish to buffer to disk when rows are
large.
-See the [isolation example](https://github.com/apache/accumulo-examples/blob/master/docs/isolation.md)
-for example code that uses the IsolatedScanner.
+See the [isolation example][isolation] for example code that uses the [IsolatedScanner].
### BatchScanner
@@ -248,17 +243,16 @@ TabletServers in parallel.
ArrayList<Range> ranges = new ArrayList<Range>();
// populate list of ranges ...
-BatchScanner bscan =
- conn.createBatchScanner("table", auths, 10);
+BatchScanner bscan = conn.createBatchScanner("table", auths, 10);
bscan.setRanges(ranges);
bscan.fetchColumnFamily("attributes");
-for(Entry<Key,Value> entry : bscan) {
- System.out.println(entry.getValue());
+for (Entry<Key,Value> entry : bscan) {
+ System.out.println(entry.getValue());
}
```
-For more example code, see the [batch writing and scanning example](https://github.com/apache/accumulo-examples/blob/master/docs/batch.md).
+For more example code, see the [batch writing and scanning example][batch].
At this time, there is no client side isolation support for the [BatchScanner].
You may consider using the [WholeRowIterator] with the BatchScanner to achieve
@@ -288,3 +282,7 @@ This page covers Accumulo client basics. Below are links to additional document
[Iterators]: {{ page.docs_baseurl }}/development/iterators
[Proxy]: {{ page.docs_baseurl }}/development/proxy
[MapReduce]: {{ page.docs_baseurl }}/development/mapreduce
+[mapred-example]: https://github.com/apache/accumulo-examples/blob/master/docs/mapred.md
+[batch]: https://github.com/apache/accumulo-examples/blob/master/docs/batch.md
+[reservations]: https://github.com/apache/accumulo-examples/blob/master/docs/reservations.md
+[isolation]: https://github.com/apache/accumulo-examples/blob/master/docs/isolation.md
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/26f0eb30/_docs-unreleased/getting-started/table_configuration.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/getting-started/table_configuration.md b/_docs-unreleased/getting-started/table_configuration.md
index 554804b..4bb7de6 100644
--- a/_docs-unreleased/getting-started/table_configuration.md
+++ b/_docs-unreleased/getting-started/table_configuration.md
@@ -52,8 +52,7 @@ localityGroups.put("content", contentColumns);
conn.tableOperations().setLocalityGroups("mytable", localityGroups);
// existing locality groups can be obtained as follows
-Map<String, Set<Text>> groups =
- conn.tableOperations().getLocalityGroups("mytable");
+Map<String, Set<Text>> groups = conn.tableOperations().getLocalityGroups("mytable");
```
The assignment of Column Families to Locality Groups can be changed at any time. The
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/26f0eb30/_docs-unreleased/getting-started/table_design.md
----------------------------------------------------------------------
diff --git a/_docs-unreleased/getting-started/table_design.md b/_docs-unreleased/getting-started/table_design.md
index 4f340b5..af5b17f 100644
--- a/_docs-unreleased/getting-started/table_design.md
+++ b/_docs-unreleased/getting-started/table_design.md
@@ -38,7 +38,7 @@ Scanner s = conn.createScanner("userdata", auths);
s.setRange(r);
s.fetchColumnFamily(new Text("age"));
-for(Entry<Key,Value> entry : s) {
+for (Entry<Key,Value> entry : s) {
System.out.println(entry.getValue().toString());
}
```
@@ -160,7 +160,7 @@ Scanner indexScanner = createScanner("index", auths);
indexScanner.setRange(new Range(term, term));
// we retrieve the matching rowIDs and create a set of ranges
-for(Entry<Key,Value> entry : indexScanner) {
+for (Entry<Key,Value> entry : indexScanner) {
matchingRows.add(new Range(entry.getKey().getColumnQualifier()));
}
@@ -169,7 +169,7 @@ BatchScanner bscan = conn.createBatchScanner("table", auths, 10);
bscan.setRanges(matchingRows);
bscan.fetchColumnFamily(new Text("attributes"));
-for(Entry<Key,Value> entry : bscan) {
+for (Entry<Key,Value> entry : bscan) {
System.out.println(entry.getValue());
}
```
@@ -285,7 +285,7 @@ IntersectingIterator.setColumnFamilies(iter, terms);
bscan.addScanIterator(iter);
bscan.setRanges(Collections.singleton(new Range()));
-for(Entry<Key,Value> entry : bscan) {
+for (Entry<Key,Value> entry : bscan) {
System.out.println(" " + entry.getKey().getColumnQualifier());
}
```
[2/2] accumulo-website git commit: Jekyll build from master:26f0eb3
Posted by mw...@apache.org.
Jekyll build from master:26f0eb3
Several minor updates to documenation
* Fixed java example code whitespace
* Improved linking in clients.md
* Fixed xml example whitespace
Project: http://git-wip-us.apache.org/repos/asf/accumulo-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo-website/commit/c1dde800
Tree: http://git-wip-us.apache.org/repos/asf/accumulo-website/tree/c1dde800
Diff: http://git-wip-us.apache.org/repos/asf/accumulo-website/diff/c1dde800
Branch: refs/heads/asf-site
Commit: c1dde8007829f29d73063dd87572d0bca9c747a9
Parents: db2398b
Author: Mike Walch <mw...@apache.org>
Authored: Fri Jun 2 14:00:22 2017 -0400
Committer: Mike Walch <mw...@apache.org>
Committed: Fri Jun 2 14:00:22 2017 -0400
----------------------------------------------------------------------
docs/unreleased/administration/tracing.html | 48 ++++++++---------
docs/unreleased/development/iterators.html | 56 ++++++++++----------
docs/unreleased/getting-started/clients.html | 30 +++++------
.../getting-started/table_configuration.html | 3 +-
.../getting-started/table_design.html | 8 +--
feed.xml | 4 +-
6 files changed, 70 insertions(+), 79 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/c1dde800/docs/unreleased/administration/tracing.html
----------------------------------------------------------------------
diff --git a/docs/unreleased/administration/tracing.html b/docs/unreleased/administration/tracing.html
index 787aa9a..fca4ce6 100644
--- a/docs/unreleased/administration/tracing.html
+++ b/docs/unreleased/administration/tracing.html
@@ -414,22 +414,22 @@ The zookeeper timeout defaults to 30000 (30 seconds), and the
zookeeper path defaults to /tracers. An example of configuring
Hadoop to send traces to ZooTraceClient is</p>
-<div class="language-xml highlighter-rouge"><pre class="highlight"><code> <span class="nt"><property></span>
- <span class="nt"><name></span>hadoop.htrace.spanreceiver.classes<span class="nt"></name></span>
- <span class="nt"><value></span>org.apache.accumulo.core.trace.ZooTraceClient<span class="nt"></value></span>
- <span class="nt"></property></span>
- <span class="nt"><property></span>
- <span class="nt"><name></span>hadoop.htrace.tracer.zookeeper.host<span class="nt"></name></span>
- <span class="nt"><value></span>zookeeperHost:2181<span class="nt"></value></span>
- <span class="nt"></property></span>
- <span class="nt"><property></span>
- <span class="nt"><name></span>hadoop.htrace.tracer.zookeeper.path<span class="nt"></name></span>
- <span class="nt"><value></span>/tracers<span class="nt"></value></span>
- <span class="nt"></property></span>
- <span class="nt"><property></span>
- <span class="nt"><name></span>hadoop.htrace.tracer.span.min.ms<span class="nt"></name></span>
- <span class="nt"><value></span>1<span class="nt"></value></span>
- <span class="nt"></property></span>
+<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt"><property></span>
+ <span class="nt"><name></span>hadoop.htrace.spanreceiver.classes<span class="nt"></name></span>
+ <span class="nt"><value></span>org.apache.accumulo.core.trace.ZooTraceClient<span class="nt"></value></span>
+<span class="nt"></property></span>
+<span class="nt"><property></span>
+ <span class="nt"><name></span>hadoop.htrace.tracer.zookeeper.host<span class="nt"></name></span>
+ <span class="nt"><value></span>zookeeperHost:2181<span class="nt"></value></span>
+<span class="nt"></property></span>
+<span class="nt"><property></span>
+ <span class="nt"><name></span>hadoop.htrace.tracer.zookeeper.path<span class="nt"></name></span>
+ <span class="nt"><value></span>/tracers<span class="nt"></value></span>
+<span class="nt"></property></span>
+<span class="nt"><property></span>
+ <span class="nt"><name></span>hadoop.htrace.tracer.span.min.ms<span class="nt"></name></span>
+ <span class="nt"><value></span>1<span class="nt"></value></span>
+<span class="nt"></property></span>
</code></pre>
</div>
@@ -498,14 +498,14 @@ this is easily done by adding to your client’s pom.xml (taking care to specify
be placed in the ClientConfiguration (if applicable) and Accumulo’s <code class="highlighter-rouge">accumulo-site.xml</code>.
Two such properties for ZipkinSpanReceiver, listed with their default values, are</p>
-<div class="language-xml highlighter-rouge"><pre class="highlight"><code> <span class="nt"><property></span>
- <span class="nt"><name></span>trace.span.receiver.zipkin.collector-hostname<span class="nt"></name></span>
- <span class="nt"><value></span>localhost<span class="nt"></value></span>
- <span class="nt"></property></span>
- <span class="nt"><property></span>
- <span class="nt"><name></span>trace.span.receiver.zipkin.collector-port<span class="nt"></name></span>
- <span class="nt"><value></span>9410<span class="nt"></value></span>
- <span class="nt"></property></span>
+<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt"><property></span>
+ <span class="nt"><name></span>trace.span.receiver.zipkin.collector-hostname<span class="nt"></name></span>
+ <span class="nt"><value></span>localhost<span class="nt"></value></span>
+<span class="nt"></property></span>
+<span class="nt"><property></span>
+ <span class="nt"><name></span>trace.span.receiver.zipkin.collector-port<span class="nt"></name></span>
+ <span class="nt"><value></span>9410<span class="nt"></value></span>
+<span class="nt"></property></span>
</code></pre>
</div>
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/c1dde800/docs/unreleased/development/iterators.html
----------------------------------------------------------------------
diff --git a/docs/unreleased/development/iterators.html b/docs/unreleased/development/iterators.html
index cb468d3..fc87f7d 100644
--- a/docs/unreleased/development/iterators.html
+++ b/docs/unreleased/development/iterators.html
@@ -500,32 +500,32 @@ then returns itself.</p>
<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">List</span><span class="o"><</span><span class="n">KeyValue</span><span class="o">></span> <span class="n">batch</span><span class="o">;</span>
<span class="n">Range</span> <span class="n">range</span> <span class="o">=</span> <span class="n">getRangeFromClient</span><span class="o">();</span>
-<span class="k">while</span><span class="o">(!</span><span class="n">overSizeLimit</span><span class="o">(</span><span class="n">batch</span><span class="o">)){</span>
- <span class="n">SortedKeyValueIterator</span> <span class="n">source</span> <span class="o">=</span> <span class="n">getSystemIterator</span><span class="o">();</span>
-
- <span class="k">for</span><span class="o">(</span><span class="n">String</span> <span class="n">clzName</span> <span class="o">:</span> <span class="n">getUserIterators</span><span class="o">()){</span>
- <span class="n">Class</span><span class="o"><?></span> <span class="n">clz</span> <span class="o">=</span> <span class="n">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="n">clzName</span><span class="o">);</span>
- <span class="n">SortedKeyValueIterator</span> <span class="n">iter</span> <span class="o">=</span> <span class="o">(</span><span class="n">SortedKeyValueIterator</span><span class="o">)</span> <span class="n">clz</span><span class="o">.</span><span class="na">newInstance</span><span class="o">();</span>
- <span class="n">iter</span><span class="o">.</span><span class="na">init</span><span class="o">(</span><span class="n">source</span><span class="o">,</span> <span class="n">opts</span><span class="o">,</span> <span class="n">env</span><span class="o">);</span>
- <span class="n">source</span> <span class="o">=</span> <span class="n">iter</span><span class="o">;</span>
- <span class="o">}</span>
-
- <span class="c1">// read a batch of data to return to client</span>
- <span class="c1">// the last iterator, the "top"</span>
- <span class="n">SortedKeyValueIterator</span> <span class="n">topIter</span> <span class="o">=</span> <span class="n">source</span><span class="o">;</span>
- <span class="n">topIter</span><span class="o">.</span><span class="na">seek</span><span class="o">(</span><span class="n">getRangeFromUser</span><span class="o">(),</span> <span class="o">...)</span>
-
- <span class="k">while</span><span class="o">(</span><span class="n">topIter</span><span class="o">.</span><span class="na">hasTop</span><span class="o">()</span> <span class="o">&&</span> <span class="o">!</span><span class="n">overSizeLimit</span><span class="o">(</span><span class="n">batch</span><span class="o">)){</span>
- <span class="n">key</span> <span class="o">=</span> <span class="n">topIter</span><span class="o">.</span><span class="na">getTopKey</span><span class="o">()</span>
- <span class="n">val</span> <span class="o">=</span> <span class="n">topIter</span><span class="o">.</span><span class="na">getTopValue</span><span class="o">()</span>
- <span class="n">batch</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">KeyValue</span><span class="o">(</span><span class="n">key</span><span class="o">,</span> <span class="n">val</span><span class="o">)</span>
- <span class="k">if</span><span class="o">(</span><span class="n">systemDataSourcesChanged</span><span class="o">()){</span>
- <span class="c1">// code does not show isolation case, which will</span>
- <span class="c1">// keep using same data sources until a row boundry is hit </span>
- <span class="n">range</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="n">key</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="n">range</span><span class="o">.</span><span class="na">endKey</span><span class="o">(),</span> <span class="n">range</span><span class="o">.</span><span class="na">endKeyInclusive</span><span class="o">());</span>
- <span class="k">break</span><span class="o">;</span>
- <span class="o">}</span>
- <span class="o">}</span>
+<span class="k">while</span> <span class="o">(!</span><span class="n">overSizeLimit</span><span class="o">(</span><span class="n">batch</span><span class="o">))</span> <span class="o">{</span>
+ <span class="n">SortedKeyValueIterator</span> <span class="n">source</span> <span class="o">=</span> <span class="n">getSystemIterator</span><span class="o">();</span>
+
+ <span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">clzName</span> <span class="o">:</span> <span class="n">getUserIterators</span><span class="o">())</span> <span class="o">{</span>
+ <span class="n">Class</span><span class="o"><?></span> <span class="n">clz</span> <span class="o">=</span> <span class="n">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="n">clzName</span><span class="o">);</span>
+ <span class="n">SortedKeyValueIterator</span> <span class="n">iter</span> <span class="o">=</span> <span class="o">(</span><span class="n">SortedKeyValueIterator</span><span class="o">)</span> <span class="n">clz</span><span class="o">.</span><span class="na">newInstance</span><span class="o">();</span>
+ <span class="n">iter</span><span class="o">.</span><span class="na">init</span><span class="o">(</span><span class="n">source</span><span class="o">,</span> <span class="n">opts</span><span class="o">,</span> <span class="n">env</span><span class="o">);</span>
+ <span class="n">source</span> <span class="o">=</span> <span class="n">iter</span><span class="o">;</span>
+ <span class="o">}</span>
+
+ <span class="c1">// read a batch of data to return to client</span>
+ <span class="c1">// the last iterator, the "top"</span>
+ <span class="n">SortedKeyValueIterator</span> <span class="n">topIter</span> <span class="o">=</span> <span class="n">source</span><span class="o">;</span>
+ <span class="n">topIter</span><span class="o">.</span><span class="na">seek</span><span class="o">(</span><span class="n">getRangeFromUser</span><span class="o">(),</span> <span class="o">...)</span>
+
+ <span class="k">while</span> <span class="o">(</span><span class="n">topIter</span><span class="o">.</span><span class="na">hasTop</span><span class="o">()</span> <span class="o">&&</span> <span class="o">!</span><span class="n">overSizeLimit</span><span class="o">(</span><span class="n">batch</span><span class="o">))</span> <span class="o">{</span>
+ <span class="n">key</span> <span class="o">=</span> <span class="n">topIter</span><span class="o">.</span><span class="na">getTopKey</span><span class="o">()</span>
+ <span class="n">val</span> <span class="o">=</span> <span class="n">topIter</span><span class="o">.</span><span class="na">getTopValue</span><span class="o">()</span>
+ <span class="n">batch</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">KeyValue</span><span class="o">(</span><span class="n">key</span><span class="o">,</span> <span class="n">val</span><span class="o">)</span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">systemDataSourcesChanged</span><span class="o">())</span> <span class="o">{</span>
+ <span class="c1">// code does not show isolation case, which will</span>
+ <span class="c1">// keep using same data sources until a row boundry is hit </span>
+ <span class="n">range</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="n">key</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="n">range</span><span class="o">.</span><span class="na">endKey</span><span class="o">(),</span> <span class="n">range</span><span class="o">.</span><span class="na">endKeyInclusive</span><span class="o">());</span>
+ <span class="k">break</span><span class="o">;</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
<span class="o">}</span>
<span class="c1">//return batch of key values to client</span>
</code></pre>
@@ -543,10 +543,8 @@ then returns itself.</p>
<span class="c1">// Eventually client comes back</span>
<span class="c1">// Setup as before...</span>
-
<span class="n">Range</span> <span class="n">userRange</span> <span class="o">=</span> <span class="n">getRangeFromUser</span><span class="o">();</span>
-<span class="n">Range</span> <span class="n">actualRange</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="n">lastKeyReturned</span><span class="o">,</span> <span class="kc">false</span>
- <span class="n">userRange</span><span class="o">.</span><span class="na">getEndKey</span><span class="o">(),</span> <span class="n">userRange</span><span class="o">.</span><span class="na">isEndKeyInclusive</span><span class="o">());</span>
+<span class="n">Range</span> <span class="n">actualRange</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="n">lastKeyReturned</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="n">userRange</span><span class="o">.</span><span class="na">getEndKey</span><span class="o">(),</span> <span class="n">userRange</span><span class="o">.</span><span class="na">isEndKeyInclusive</span><span class="o">());</span>
<span class="c1">// Use the actualRange, not the user provided one</span>
<span class="n">topIter</span><span class="o">.</span><span class="na">seek</span><span class="o">(</span><span class="n">actualRange</span><span class="o">);</span>
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/c1dde800/docs/unreleased/getting-started/clients.html
----------------------------------------------------------------------
diff --git a/docs/unreleased/getting-started/clients.html b/docs/unreleased/getting-started/clients.html
index 6538b27..8715b58 100644
--- a/docs/unreleased/getting-started/clients.html
+++ b/docs/unreleased/getting-started/clients.html
@@ -375,7 +375,8 @@ the accumulo command.</p>
<h3 id="using-the-accumulo-util-hadoop-jar-command">Using the ‘accumulo-util hadoop-jar’ command</h3>
<p>If you are writing map reduce job that accesses Accumulo, then you can use
-<code class="highlighter-rouge">accumulo-util hadoop-jar</code> to run those jobs. See the map reduce example.</p>
+<code class="highlighter-rouge">accumulo-util hadoop-jar</code> to run those jobs. See the <a href="https://github.com/apache/accumulo-examples/blob/master/docs/mapred.md">MapReduce example</a>
+for more information.</p>
<h2 id="connecting">Connecting</h2>
@@ -447,9 +448,7 @@ batching.</p>
<span class="n">config</span><span class="o">.</span><span class="na">setMaxMemory</span><span class="o">(</span><span class="mi">10000000L</span><span class="o">);</span> <span class="c1">// bytes available to batchwriter for buffering mutations</span>
<span class="n">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"table"</span><span class="o">,</span> <span class="n">config</span><span class="o">)</span>
-
<span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation</span><span class="o">);</span>
-
<span class="n">writer</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
</code></pre>
</div>
@@ -473,14 +472,13 @@ mutation when a column is less than 5.</p>
<p>In the case when a tablet server dies after a client sent a conditional
mutation, its not known if the mutation was applied or not. When this happens
-the ConditionalWriter reports a status of UNKNOWN for the ConditionalMutation.
+the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/1.8.1/org/apache/accumulo/core/client/ConditionalWriter.html">ConditionalWriter</a> reports a status of UNKNOWN for the ConditionalMutation.
In many cases this situation can be dealt with by simply reading the row again
and possibly sending another conditional mutation. If this is not sufficient,
then a higher level of abstraction can be built by storing transactional
information within a row.</p>
-<p>See the <a href="https://github.com/apache/accumulo-examples/blob/master/docs/reservations.md">reservations example</a>
-for example code that uses the conditional writer.</p>
+<p>See the <a href="https://github.com/apache/accumulo-examples/blob/master/docs/reservations.md">reservations example</a> for example code that uses the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/1.8.1/org/apache/accumulo/core/client/ConditionalWriter.html">ConditionalWriter</a>.</p>
<h3 id="durability">Durability</h3>
@@ -529,15 +527,13 @@ to return a subset of the columns available.</p>
<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="c1">// specify which visibilities we are allowed to see</span>
<span class="n">Authorizations</span> <span class="n">auths</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Authorizations</span><span class="o">(</span><span class="s">"public"</span><span class="o">);</span>
-<span class="n">Scanner</span> <span class="n">scan</span> <span class="o">=</span>
- <span class="n">conn</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"table"</span><span class="o">,</span> <span class="n">auths</span><span class="o">);</span>
-
+<span class="n">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"table"</span><span class="o">,</span> <span class="n">auths</span><span class="o">);</span>
<span class="n">scan</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="s">"harry"</span><span class="o">,</span><span class="s">"john"</span><span class="o">));</span>
<span class="n">scan</span><span class="o">.</span><span class="na">fetchColumnFamily</span><span class="o">(</span><span class="k">new</span> <span class="n">Text</span><span class="o">(</span><span class="s">"attributes"</span><span class="o">));</span>
-<span class="k">for</span><span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">scan</span><span class="o">)</span> <span class="o">{</span>
- <span class="n">Text</span> <span class="n">row</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="na">getKey</span><span class="o">().</span><span class="na">getRow</span><span class="o">();</span>
- <span class="n">Value</span> <span class="n">value</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">();</span>
+<span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">scan</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">Text</span> <span class="n">row</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="na">getKey</span><span class="o">().</span><span class="na">getRow</span><span class="o">();</span>
+ <span class="n">Value</span> <span class="n">value</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">();</span>
<span class="o">}</span>
</code></pre>
</div>
@@ -565,8 +561,7 @@ crash a tablet server. By default rows are buffered in memory, but the user
can easily supply their own buffer if they wish to buffer to disk when rows are
large.</p>
-<p>See the <a href="https://github.com/apache/accumulo-examples/blob/master/docs/isolation.md">isolation example</a>
-for example code that uses the IsolatedScanner.</p>
+<p>See the <a href="https://github.com/apache/accumulo-examples/blob/master/docs/isolation.md">isolation example</a> for example code that uses the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/1.8.1/org/apache/accumulo/core/client/IsolatedScanner.html">IsolatedScanner</a>.</p>
<h3 id="batchscanner">BatchScanner</h3>
@@ -583,13 +578,12 @@ TabletServers in parallel.</p>
<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">ArrayList</span><span class="o"><</span><span class="n">Range</span><span class="o">></span> <span class="n">ranges</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o"><</span><span class="n">Range</span><span class="o">>();</span>
<span class="c1">// populate list of ranges ...</span>
-<span class="n">BatchScanner</span> <span class="n">bscan</span> <span class="o">=</span>
- <span class="n">conn</span><span class="o">.</span><span class="na">createBatchScanner</span><span class="o">(</span><span class="s">"table"</span><span class="o">,</span> <span class="n">auths</span><span class="o">,</span> <span class="mi">10</span><span class="o">);</span>
+<span class="n">BatchScanner</span> <span class="n">bscan</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchScanner</span><span class="o">(</span><span class="s">"table"</span><span class="o">,</span> <span class="n">auths</span><span class="o">,</span> <span class="mi">10</span><span class="o">);</span>
<span class="n">bscan</span><span class="o">.</span><span class="na">setRanges</span><span class="o">(</span><span class="n">ranges</span><span class="o">);</span>
<span class="n">bscan</span><span class="o">.</span><span class="na">fetchColumnFamily</span><span class="o">(</span><span class="s">"attributes"</span><span class="o">);</span>
-<span class="k">for</span><span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">bscan</span><span class="o">)</span> <span class="o">{</span>
- <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">());</span>
+<span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">bscan</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">());</span>
<span class="o">}</span>
</code></pre>
</div>
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/c1dde800/docs/unreleased/getting-started/table_configuration.html
----------------------------------------------------------------------
diff --git a/docs/unreleased/getting-started/table_configuration.html b/docs/unreleased/getting-started/table_configuration.html
index dfdbbba..99fc285 100644
--- a/docs/unreleased/getting-started/table_configuration.html
+++ b/docs/unreleased/getting-started/table_configuration.html
@@ -375,8 +375,7 @@ user@myinstance mytable> getgroups -t mytable
<span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">setLocalityGroups</span><span class="o">(</span><span class="s">"mytable"</span><span class="o">,</span> <span class="n">localityGroups</span><span class="o">);</span>
<span class="c1">// existing locality groups can be obtained as follows</span>
-<span class="n">Map</span><span class="o"><</span><span class="n">String</span><span class="o">,</span> <span class="n">Set</span><span class="o"><</span><span class="n">Text</span><span class="o">>></span> <span class="n">groups</span> <span class="o">=</span>
- <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">getLocalityGroups</span><span class="o">(</span><span class="s">"mytable"</span><span class="o">);</span>
+<span class="n">Map</span><span class="o"><</span><span class="n">String</span><span class="o">,</span> <span class="n">Set</span><span class="o"><</span><span class="n">Text</span><span class="o">>></span> <span class="n">groups</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">getLocalityGroups</span><span class="o">(</span><span class="s">"mytable"</span><span class="o">);</span>
</code></pre>
</div>
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/c1dde800/docs/unreleased/getting-started/table_design.html
----------------------------------------------------------------------
diff --git a/docs/unreleased/getting-started/table_design.html b/docs/unreleased/getting-started/table_design.html
index 5268346..2e9afaf 100644
--- a/docs/unreleased/getting-started/table_design.html
+++ b/docs/unreleased/getting-started/table_design.html
@@ -361,7 +361,7 @@ userid as the range of a scanner and fetching specific columns:</p>
<span class="n">s</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="n">r</span><span class="o">);</span>
<span class="n">s</span><span class="o">.</span><span class="na">fetchColumnFamily</span><span class="o">(</span><span class="k">new</span> <span class="n">Text</span><span class="o">(</span><span class="s">"age"</span><span class="o">));</span>
-<span class="k">for</span><span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">s</span><span class="o">)</span> <span class="o">{</span>
+<span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">s</span><span class="o">)</span> <span class="o">{</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">toString</span><span class="o">());</span>
<span class="o">}</span>
</code></pre>
@@ -504,7 +504,7 @@ sorted order, as is the case with the basic Scanner interface.</p>
<span class="n">indexScanner</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="n">term</span><span class="o">,</span> <span class="n">term</span><span class="o">));</span>
<span class="c1">// we retrieve the matching rowIDs and create a set of ranges</span>
-<span class="k">for</span><span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">indexScanner</span><span class="o">)</span> <span class="o">{</span>
+<span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">indexScanner</span><span class="o">)</span> <span class="o">{</span>
<span class="n">matchingRows</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Range</span><span class="o">(</span><span class="n">entry</span><span class="o">.</span><span class="na">getKey</span><span class="o">().</span><span class="na">getColumnQualifier</span><span class="o">()));</span>
<span class="o">}</span>
@@ -513,7 +513,7 @@ sorted order, as is the case with the basic Scanner interface.</p>
<span class="n">bscan</span><span class="o">.</span><span class="na">setRanges</span><span class="o">(</span><span class="n">matchingRows</span><span class="o">);</span>
<span class="n">bscan</span><span class="o">.</span><span class="na">fetchColumnFamily</span><span class="o">(</span><span class="k">new</span> <span class="n">Text</span><span class="o">(</span><span class="s">"attributes"</span><span class="o">));</span>
-<span class="k">for</span><span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">bscan</span><span class="o">)</span> <span class="o">{</span>
+<span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">bscan</span><span class="o">)</span> <span class="o">{</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">());</span>
<span class="o">}</span>
</code></pre>
@@ -779,7 +779,7 @@ BatchScanner within user query code as follows:</p>
<span class="n">bscan</span><span class="o">.</span><span class="na">addScanIterator</span><span class="o">(</span><span class="n">iter</span><span class="o">);</span>
<span class="n">bscan</span><span class="o">.</span><span class="na">setRanges</span><span class="o">(</span><span class="n">Collections</span><span class="o">.</span><span class="na">singleton</span><span class="o">(</span><span class="k">new</span> <span class="n">Range</span><span class="o">()));</span>
-<span class="k">for</span><span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">bscan</span><span class="o">)</span> <span class="o">{</span>
+<span class="k">for</span> <span class="o">(</span><span class="n">Entry</span><span class="o"><</span><span class="n">Key</span><span class="o">,</span><span class="n">Value</span><span class="o">></span> <span class="n">entry</span> <span class="o">:</span> <span class="n">bscan</span><span class="o">)</span> <span class="o">{</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">" "</span> <span class="o">+</span> <span class="n">entry</span><span class="o">.</span><span class="na">getKey</span><span class="o">().</span><span class="na">getColumnQualifier</span><span class="o">());</span>
<span class="o">}</span>
</code></pre>
http://git-wip-us.apache.org/repos/asf/accumulo-website/blob/c1dde800/feed.xml
----------------------------------------------------------------------
diff --git a/feed.xml b/feed.xml
index 9a5183a..9124622 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,8 +6,8 @@
</description>
<link>https://accumulo.apache.org/</link>
<atom:link href="https://accumulo.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
- <pubDate>Fri, 02 Jun 2017 12:16:56 -0400</pubDate>
- <lastBuildDate>Fri, 02 Jun 2017 12:16:56 -0400</lastBuildDate>
+ <pubDate>Fri, 02 Jun 2017 14:00:13 -0400</pubDate>
+ <lastBuildDate>Fri, 02 Jun 2017 14:00:13 -0400</lastBuildDate>
<generator>Jekyll v3.3.1</generator>
<item>