Return-Path: X-Original-To: apmail-accumulo-commits-archive@www.apache.org Delivered-To: apmail-accumulo-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6E7501754D for ; Mon, 18 May 2015 04:27:56 +0000 (UTC) Received: (qmail 91905 invoked by uid 500); 18 May 2015 04:27:56 -0000 Delivered-To: apmail-accumulo-commits-archive@accumulo.apache.org Received: (qmail 91811 invoked by uid 500); 18 May 2015 04:27:56 -0000 Mailing-List: contact commits-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list commits@accumulo.apache.org Received: (qmail 91500 invoked by uid 500); 18 May 2015 04:27:55 -0000 Delivered-To: apmail-incubator-accumulo-commits@incubator.apache.org Received: (qmail 91487 invoked by uid 99); 18 May 2015 04:27:55 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 May 2015 04:27:55 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 2573CAC1150 for ; Mon, 18 May 2015 04:27:55 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r951681 [9/9] - in /websites/staging/accumulo/trunk/content: ./ 1.7/ 1.7/examples/ Date: Mon, 18 May 2015 04:27:54 -0000 To: accumulo-commits@incubator.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150518042755.2573CAC1150@hades.apache.org> Added: websites/staging/accumulo/trunk/content/1.7/examples/terasort.html ============================================================================== --- websites/staging/accumulo/trunk/content/1.7/examples/terasort.html (added) +++ websites/staging/accumulo/trunk/content/1.7/examples/terasort.html Mon May 18 04:27:53 2015 @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + Apache Accumulo Terasort Example + + + + + + + + + +
+
+ +
+ + +
+ +

Apache Accumulo Terasort Example

+ +

This example uses map/reduce to generate random input data that will +be sorted by storing it into accumulo. It uses data very similar to the +hadoop terasort benchmark.

+

To run this example you run it with arguments describing the amount of data:

+
$ bin/tool.sh lib/accumulo-examples-simple.jar org.apache.accumulo.examples.simple.mapreduce.TeraSortIngest \
+-i instance -z zookeepers -u user -p password \
+--count 10 \
+--minKeySize 10 \
+--maxKeySize 10 \
+--minValueSize 78 \
+--maxValueSize 78 \
+--table sort \
+--splits 10 \
+
+ + +

After the map reduce job completes, scan the data:

+
$ ./bin/accumulo shell -u username -p password
+username@instance> scan -t sort
++l-$$OE/ZH c:         4 []    GGGGGGGGGGWWWWWWWWWWMMMMMMMMMMCCCCCCCCCCSSSSSSSSSSIIIIIIIIIIYYYYYYYYYYOOOOOOOO
+,C)wDw//u= c:        10 []    CCCCCCCCCCSSSSSSSSSSIIIIIIIIIIYYYYYYYYYYOOOOOOOOOOEEEEEEEEEEUUUUUUUUUUKKKKKKKK
+75@~?'WdUF c:         1 []    IIIIIIIIIIYYYYYYYYYYOOOOOOOOOOEEEEEEEEEEUUUUUUUUUUKKKKKKKKKKAAAAAAAAAAQQQQQQQQ
+;L+!2rT~hd c:         8 []    MMMMMMMMMMCCCCCCCCCCSSSSSSSSSSIIIIIIIIIIYYYYYYYYYYOOOOOOOOOOEEEEEEEEEEUUUUUUUU
+LsS8)|.ZLD c:         5 []    OOOOOOOOOOEEEEEEEEEEUUUUUUUUUUKKKKKKKKKKAAAAAAAAAAQQQQQQQQQQGGGGGGGGGGWWWWWWWW
+M^*dDE;6^< c:         9 []    UUUUUUUUUUKKKKKKKKKKAAAAAAAAAAQQQQQQQQQQGGGGGGGGGGWWWWWWWWWWMMMMMMMMMMCCCCCCCC
+^Eu)<n#kdP c:         3 []    YYYYYYYYYYOOOOOOOOOOEEEEEEEEEEUUUUUUUUUUKKKKKKKKKKAAAAAAAAAAQQQQQQQQQQGGGGGGGG
+le5awB.$sm c:         6 []    WWWWWWWWWWMMMMMMMMMMCCCCCCCCCCSSSSSSSSSSIIIIIIIIIIYYYYYYYYYYOOOOOOOOOOEEEEEEEE
+q__[fwhKFg c:         7 []    EEEEEEEEEEUUUUUUUUUUKKKKKKKKKKAAAAAAAAAAQQQQQQQQQQGGGGGGGGGGWWWWWWWWWWMMMMMMMM
+w[o||:N&H, c:         2 []    QQQQQQQQQQGGGGGGGGGGWWWWWWWWWWMMMMMMMMMMCCCCCCCCCCSSSSSSSSSSIIIIIIIIIIYYYYYYYY
+
+ + +

Of course, a real benchmark would ingest millions of entries.

+
+ + +
+ +
+
+ + + + Added: websites/staging/accumulo/trunk/content/1.7/examples/visibility.html ============================================================================== --- websites/staging/accumulo/trunk/content/1.7/examples/visibility.html (added) +++ websites/staging/accumulo/trunk/content/1.7/examples/visibility.html Mon May 18 04:27:53 2015 @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + Apache Accumulo Visibility, Authorizations, and Permissions Example + + + + + + + + + +
+
+ +
+ + +
+ +

Apache Accumulo Visibility, Authorizations, and Permissions Example

+ +

Creating a new user

+
root@instance> createuser username
+Enter new password for 'username': ********
+Please confirm new password for 'username': ********
+root@instance> user username
+Enter password for user username: ********
+username@instance> createtable vistest
+06 10:48:47,931 [shell.Shell] ERROR: org.apache.accumulo.core.client.AccumuloSecurityException: Error PERMISSION_DENIED - User does not have permission to perform this action
+username@instance> userpermissions
+System permissions:
+
+Table permissions (accumulo.metadata): Table.READ
+username@instance>
+
+ + +

A user does not by default have permission to create a table.

+

Granting permissions to a user

+
username@instance> user root
+Enter password for user root: ********
+root@instance> grant -s System.CREATE_TABLE -u username
+root@instance> user username
+Enter password for user username: ********
+username@instance> createtable vistest
+username@instance> userpermissions
+System permissions: System.CREATE_TABLE
+
+Table permissions (accumulo.metadata): Table.READ
+Table permissions (vistest): Table.READ, Table.WRITE, Table.BULK_IMPORT, Table.ALTER_TABLE, Table.GRANT, Table.DROP_TABLE
+username@instance vistest>
+
+ + +

Inserting data with visibilities

+

Visibilities are boolean AND (&) and OR (|) combinations of authorization +tokens. Authorization tokens are arbitrary strings taken from a restricted +ASCII character set. Parentheses are required to specify order of operations +in visibilities.

+
username@instance vistest> insert row f1 q1 v1 -l A
+username@instance vistest> insert row f2 q2 v2 -l A&B
+username@instance vistest> insert row f3 q3 v3 -l apple&carrot|broccoli|spinach
+06 11:19:01,432 [shell.Shell] ERROR: org.apache.accumulo.core.util.BadArgumentException: cannot mix | and & near index 12
+apple&carrot|broccoli|spinach
+            ^
+username@instance vistest> insert row f3 q3 v3 -l (apple&carrot)|broccoli|spinach
+username@instance vistest>
+
+ + +

Scanning with authorizations

+

Authorizations are sets of authorization tokens. Each Accumulo user has +authorizations and each Accumulo scan has authorizations. Scan authorizations +are only allowed to be a subset of the user's authorizations. By default, a +user's authorizations set is empty.

+
username@instance vistest> scan
+username@instance vistest> scan -s A
+06 11:43:14,951 [shell.Shell] ERROR: java.lang.RuntimeException: org.apache.accumulo.core.client.AccumuloSecurityException: Error BAD_AUTHORIZATIONS - The user does not have the specified authorizations assigned
+username@instance vistest>
+
+ + +

Setting authorizations for a user

+
username@instance vistest> setauths -s A
+06 11:53:42,056 [shell.Shell] ERROR: org.apache.accumulo.core.client.AccumuloSecurityException: Error PERMISSION_DENIED - User does not have permission to perform this action
+username@instance vistest>
+
+ + +

A user cannot set authorizations unless the user has the System.ALTER_USER permission. +The root user has this permission.

+
username@instance vistest> user root
+Enter password for user root: ********
+root@instance vistest> setauths -s A -u username
+root@instance vistest> user username
+Enter password for user username: ********
+username@instance vistest> scan -s A
+row f1:q1 [A]    v1
+username@instance vistest> scan
+row f1:q1 [A]    v1
+username@instance vistest>
+
+ + +

The default authorizations for a scan are the user's entire set of authorizations.

+
username@instance vistest> user root
+Enter password for user root: ********
+root@instance vistest> setauths -s A,B,broccoli -u username
+root@instance vistest> user username
+Enter password for user username: ********
+username@instance vistest> scan
+row f1:q1 [A]    v1
+row f2:q2 [A&B]    v2
+row f3:q3 [(apple&carrot)|broccoli|spinach]    v3
+username@instance vistest> scan -s B
+username@instance vistest>
+
+ + +

If you want, you can limit a user to only be able to insert data which they can read themselves. +It can be set with the following constraint.

+
username@instance vistest> user root
+Enter password for user root: ******
+root@instance vistest> config -t vistest -s table.constraint.1=org.apache.accumulo.core.security.VisibilityConstraint
+root@instance vistest> user username
+Enter password for user username: ********
+username@instance vistest> insert row f4 q4 v4 -l spinach
+    Constraint Failures:
+        ConstraintViolationSummary(constrainClass:org.apache.accumulo.core.security.VisibilityConstraint, violationCode:2, violationDescription:User does not have authorization on column visibility, numberOfViolatingMutations:1)
+username@instance vistest> insert row f4 q4 v4 -l spinach|broccoli
+username@instance vistest> scan
+row f1:q1 [A]    v1
+row f2:q2 [A&B]    v2
+row f3:q3 [(apple&carrot)|broccoli|spinach]    v3
+row f4:q4 [spinach|broccoli]    v4
+username@instance vistest>
+
+
+ + +
+ +
+
+ + + +