Skip to content

Commit

Permalink
Update docs from master
Browse files Browse the repository at this point in the history
  • Loading branch information
apurtell committed May 27, 2015
1 parent ab0a9b9 commit dd8e926
Show file tree
Hide file tree
Showing 14 changed files with 496 additions and 202 deletions.
94 changes: 47 additions & 47 deletions src/main/asciidoc/_chapters/appendix_acl_matrix.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -81,77 +81,77 @@ In case the table goes out of date, the unit tests which check for accuracy of p
|===
| Interface | Operation | Permissions
| Master | createTable | superuser\|global\(C)\|NS\(C)
| | modifyTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | deleteTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | truncateTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | addColumn | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | modifyColumn | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)\|column(A)\|column\(C)
| | deleteColumn | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)\|column(A)\|column\(C)
| | enableTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | disableTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | modifyTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | deleteTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | truncateTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | addColumn | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | modifyColumn | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)\|column(A)\|column\(C)
| | deleteColumn | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)\|column(A)\|column\(C)
| | enableTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | disableTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | disableAclTable | Not allowed
| | move | superuser\|global(A)\|NS(A)\|Table(A)
| | assign | superuser\|global(A)\|NS(A)\|Table(A)
| | unassign | superuser\|global(A)\|NS(A)\|Table(A)
| | regionOffline | superuser\|global(A)\|NS(A)\|Table(A)
| | move | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | assign | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | unassign | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | regionOffline | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | balance | superuser\|global(A)
| | balanceSwitch | superuser\|global(A)
| | shutdown | superuser\|global(A)
| | stopMaster | superuser\|global(A)
| | snapshot | superuser\|global(A)\|NS(A)\|Table(A)
| | snapshot | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | listSnapshot | superuser\|global(A)\|SnapshotOwner
| | cloneSnapshot | superuser\|global(A)
| | restoreSnapshot | superuser\|global(A)\|SnapshotOwner & (NS(A)\|Table(A))
| | restoreSnapshot | superuser\|global(A)\|SnapshotOwner & (NS(A)\|TableOwner\|table(A))
| | deleteSnapshot | superuser\|global(A)\|SnapshotOwner
| | createNamespace | superuser\|global(A)
| | deleteNamespace | superuser\|global(A)
| | modifyNamespace | superuser\|global(A)
| | getNamespaceDescriptor | superuser\|global(A)\|NS(A)
| | listNamespaceDescriptors* | superuser\|global(A)\|NS(A)
| | flushTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS(\C)\|table(A)\|table\(C)
| | getTableDescriptors* | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|table(A)\|table\(C)
| | getTableNames* | Any global or table perm
| | flushTable | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | getTableDescriptors* | superuser\|global(A)\|global\(C)\|NS(A)\|NS\(C)\|TableOwner\|table(A)\|table\(C)
| | getTableNames* | superuser\|TableOwner\|Any global or table perm
| | setUserQuota(global level) | superuser\|global(A)
| | setUserQuota(namespace level) | superuser\|global(A)
| | setUserQuota(Table level) | superuser\|global(A)\|NS(A)\|Table(A)
| | setTableQuota | superuser\|global(A)\|NS(A)\|Table(A)
| | setUserQuota(Table level) | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | setTableQuota | superuser\|global(A)\|NS(A)\|TableOwner\|table(A)
| | setNamespaceQuota | superuser\|global(A)
| Region | openRegion | superuser\|global(A)
| | closeRegion | superuser\|global(A)
| | flush | superuser\|global(A)\|global\(C)\|table(A)\|table\(C)
| | split | superuser\|global(A)\|Table(A)
| | compact | superuser\|global(A)\|global\(C)\|table(A)\|table\(C)
| | getClosestRowBefore | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | getOp | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | exists | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | put | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | delete | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | batchMutate | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | checkAndPut | superuser\|global(RW)\|NS(RW)\|Table(RW)\|CF(RW)\|CQ(RW)
| | checkAndPutAfterRowLock | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | checkAndDelete | superuser\|global(RW)\|NS(RW)\|Table(RW)\|CF(RW)\|CQ(RW)
| | checkAndDeleteAfterRowLock | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | incrementColumnValue | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | append | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | appendAfterRowLock | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | increment | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | incrementAfterRowLock | superuser\|global(W)\|NS(W)\|Table(W)\|CF(W)\|CQ(W)
| | scannerOpen | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | scannerNext | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | scannerClose | superuser\|global\(R)\|NS\(R)\|Table\(R)\|CF\(R)\|CQ\(R)
| | bulkLoadHFile | superuser\|global\(C)\|table\(C)\|CF\(C)
| | prepareBulkLoad | superuser\|global\(C)\|table\(C)\|CF\(C)
| | cleanupBulkLoad | superuser\|global\(C)\|table\(C)\|CF\(C)
| Endpoint | invoke | superuser\|global(X)\|NS(X)\|Table(X)
| | flush | superuser\|global(A)\|global\(C)\|TableOwner\|table(A)\|table\(C)
| | split | superuser\|global(A)\|TableOwner\|TableOwner\|table(A)
| | compact | superuser\|global(A)\|global\(C)\|TableOwner\|table(A)\|table\(C)
| | getClosestRowBefore | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | getOp | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | exists | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | put | superuser\|global(W)\|NS(W)\|table(W)\|TableOwner\|CF(W)\|CQ(W)
| | delete | superuser\|global(W)\|NS(W)\|table(W)\|TableOwner\|CF(W)\|CQ(W)
| | batchMutate | superuser\|global(W)\|NS(W)\|TableOwner\|table(W)\|CF(W)\|CQ(W)
| | checkAndPut | superuser\|global(RW)\|NS(RW)\|TableOwner\|table(RW)\|CF(RW)\|CQ(RW)
| | checkAndPutAfterRowLock | superuser\|global\(R)\|NS\(R)\|TableOwner\|Table\(R)\|CF\(R)\|CQ\(R)
| | checkAndDelete | superuser\|global(RW)\|NS(RW)\|TableOwner\|table(RW)\|CF(RW)\|CQ(RW)
| | checkAndDeleteAfterRowLock | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | incrementColumnValue | superuser\|global(W)\|NS(W)\|TableOwner\|table(W)\|CF(W)\|CQ(W)
| | append | superuser\|global(W)\|NS(W)\|TableOwner\|table(W)\|CF(W)\|CQ(W)
| | appendAfterRowLock | superuser\|global(W)\|NS(W)\|TableOwner\|table(W)\|CF(W)\|CQ(W)
| | increment | superuser\|global(W)\|NS(W)\|TableOwner\|table(W)\|CF(W)\|CQ(W)
| | incrementAfterRowLock | superuser\|global(W)\|NS(W)\|TableOwner\|table(W)\|CF(W)\|CQ(W)
| | scannerOpen | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | scannerNext | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | scannerClose | superuser\|global\(R)\|NS\(R)\|TableOwner\|table\(R)\|CF\(R)\|CQ\(R)
| | bulkLoadHFile | superuser\|global\(C)\|TableOwner\|table\(C)\|CF\(C)
| | prepareBulkLoad | superuser\|global\(C)\|TableOwner\|table\(C)\|CF\(C)
| | cleanupBulkLoad | superuser\|global\(C)\|TableOwner\|table\(C)\|CF\(C)
| Endpoint | invoke | superuser\|global(X)\|NS(X)\|TableOwner\|table(X)
| AccessController | grant(global level) | global(A)
| | grant(namespace level) | global(A)\|NS(A)
| | grant(table level) | global(A)\|NS(A)\|table(A)\|CF(A)\|CQ(A)
| | grant(table level) | global(A)\|NS(A)\|TableOwner\|table(A)\|CF(A)\|CQ(A)
| | revoke(global level) | global(A)
| | revoke(namespace level) | global(A)\|NS(A)
| | revoke(table level) | global(A)\|NS(A)\|table(A)\|CF(A)\|CQ(A)
| | revoke(table level) | global(A)\|NS(A)\|TableOwner\|table(A)\|CF(A)\|CQ(A)
| | getUserPermissions(global level) | global(A)
| | getUserPermissions(namespace level) | global(A)\|NS(A)
| | getUserPermissions(table level) | global(A)\|NS(A)\|table(A)\|CF(A)\|CQ(A)
| | getUserPermissions(table level) | global(A)\|NS(A)\|TableOwner\|table(A)\|CF(A)\|CQ(A)
| RegionServer | stopRegionServer | superuser\|global(A)
| | mergeRegions | superuser\|global(A)
| | rollWALWriterRequest | superuser\|global(A)
Expand Down
14 changes: 14 additions & 0 deletions src/main/asciidoc/_chapters/architecture.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2327,6 +2327,20 @@ Instead you can change the number of region replicas per table to increase or de
The period (in milliseconds) for refreshing the store files for the secondary regions. 0 means this feature is disabled. Secondary regions sees new files (from flushes and compactions) from primary once the secondary region refreshes the list of files in the region. But too frequent refreshes might cause extra Namenode pressure. If the files cannot be refreshed for longer than HFile TTL (hbase.master.hfilecleaner.ttl) the requests are rejected. Configuring HFile TTL to a larger value is also recommended with this setting.
</description>
</property>
<property>
<name>hbase.region.replica.replication.memstore.enabled</name>
<value>true</value>
<description>
If you set this to `false`, replicas do not receive memstore updates from
the primary RegionServer. If you set this to `true`, you can still disable
memstore replication on a per-table basis, by setting the table's
`REGION_MEMSTORE_REPLICATION` configuration property to `false`. If
memstore replication is disabled, the secondaries will only receive
updates for events like flushes and bulkloads, and will not have access to
data which the primary has not yet flushed. This preserves the guarantee
of row-level consistency, even when the read requests `Consistency.TIMELINE`.
</description>
</property>
----
One thing to keep in mind also is that, region replica placement policy is only enforced by the `StochasticLoadBalancer` which is the default balancer.
Expand Down
38 changes: 22 additions & 16 deletions src/main/asciidoc/_chapters/configuration.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ This section lists required services and some required system configuration.
|JDK 7
|JDK 8
|1.1
|link:http://search-hadoop.com/m/DHED4Zlz0R1[Not Supported]
|yes
|Running with JDK 8 will work but is not well tested.
|1.0
|link:http://search-hadoop.com/m/DHED4Zlz0R1[Not Supported]
|yes
Expand Down Expand Up @@ -205,20 +210,22 @@ Use the following legend to interpret this table:
* "X" = not supported
* "NT" = Not tested
[cols="1,1,1,1,1,1", options="header"]
[cols="1,1,1,1,1,1,1", options="header"]
|===
| | HBase-0.92.x | HBase-0.94.x | HBase-0.96.x | HBase-0.98.x (Support for Hadoop 1.1+ is deprecated.) | HBase-1.0.x (Hadoop 1.x is NOT supported)
|Hadoop-0.20.205 | S | X | X | X | X
|Hadoop-0.22.x | S | X | X | X | X
|Hadoop-1.0.x |X | X | X | X | X
|Hadoop-1.1.x | NT | S | S | NT | X
|Hadoop-0.23.x | X | S | NT | X | X
|Hadoop-2.0.x-alpha | X | NT | X | X | X
|Hadoop-2.1.0-beta | X | NT | S | X | X
|Hadoop-2.2.0 | X | NT | S | S | NT
|Hadoop-2.3.x | X | NT | S | S | NT
|Hadoop-2.4.x | X | NT | S | S | S
|Hadoop-2.5.x | X | NT | S | S | S
| | HBase-0.92.x | HBase-0.94.x | HBase-0.96.x | HBase-0.98.x (Support for Hadoop 1.1+ is deprecated.) | HBase-1.0.x (Hadoop 1.x is NOT supported) | HBase-1.1.x
|Hadoop-0.20.205 | S | X | X | X | X | X
|Hadoop-0.22.x | S | X | X | X | X | X
|Hadoop-1.0.x |X | X | X | X | X | X
|Hadoop-1.1.x | NT | S | S | NT | X | X
|Hadoop-0.23.x | X | S | NT | X | X | X
|Hadoop-2.0.x-alpha | X | NT | X | X | X | X
|Hadoop-2.1.0-beta | X | NT | S | X | X | X
|Hadoop-2.2.0 | X | NT | S | S | NT | NT
|Hadoop-2.3.x | X | NT | S | S | NT | NT
|Hadoop-2.4.x | X | NT | S | S | S | S
|Hadoop-2.5.x | X | NT | S | S | S | S
|Hadoop-2.6.x | X | NT | NT | NT | S | S
|Hadoop-2.7.x | X | NT | NT | NT | NT | NT
|===
.Replace the Hadoop Bundled With HBase!
Expand Down Expand Up @@ -994,8 +1001,7 @@ To enable it in 0.99 or above, add below property in _hbase-site.xml_:
NOTE: DO NOT set `com.sun.management.jmxremote.port` for Java VM at the same time.
Currently it supports Master and RegionServer Java VM.
The reason why you only configure coprocessor for 'regionserver' is that, starting from HBase 0.99, a Master IS also a RegionServer.
(See link:https://issues.apache.org/jira/browse/HBASE-10569[HBASE-10569] for more information.) By default, the JMX listens on TCP port 10102, you can further configure the port using below properties:
By default, the JMX listens on TCP port 10102, you can further configure the port using below properties:
[source,xml]
----
Expand Down Expand Up @@ -1062,7 +1068,7 @@ Finally start `jconsole` on the client using the key store:
jconsole -J-Djavax.net.ssl.trustStore=/home/tianq/jconsoleKeyStore
----
NOTE: for HBase 0.98, To enable the HBase JMX implementation on Master, you also need to add below property in _hbase-site.xml_:
NOTE: To enable the HBase JMX implementation on Master, you also need to add below property in _hbase-site.xml_:
[source,xml]
----
Expand Down
2 changes: 1 addition & 1 deletion src/main/asciidoc/_chapters/datamodel.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,7 @@ For an informative discussion on how deletes and versioning interact, see the th
Also see <<keyvalue,keyvalue>> for more information on the internal KeyValue format.
Delete markers are purged during the next major compaction of the store, unless the `KEEP_DELETED_CELLS` option is set in the column family.
Delete markers are purged during the next major compaction of the store, unless the `KEEP_DELETED_CELLS` option is set in the column family (See <<cf.keep.deleted>>).
To keep the deletes for a configurable amount of time, you can set the delete TTL via the +hbase.hstore.time.to.purge.deletes+ property in _hbase-site.xml_.
If `hbase.hstore.time.to.purge.deletes` is not set, or set to 0, all delete markers, including those with timestamps in the future, are purged during the next major compaction.
Otherwise, a delete marker with a timestamp in the future is kept until the major compaction which occurs after the time represented by the marker's timestamp plus the value of `hbase.hstore.time.to.purge.deletes`, in milliseconds.
Expand Down
20 changes: 16 additions & 4 deletions src/main/asciidoc/_chapters/developer.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,16 @@ mvn -DskipTests clean install && mvn -DskipTests package assembly:single
The distribution tarball is built in _hbase-assembly/target/hbase-<version>-bin.tar.gz_.
You can install or deploy the tarball by having the assembly:single goal before install or deploy in the maven command:
----
mvn -DskipTests package assembly:single install
----
----
mvn -DskipTests package assembly:single deploy
----
[[build.gotchas]]
==== Build Gotchas
Expand Down Expand Up @@ -446,6 +456,7 @@ You then reference these generated poms when you build.
For now, just be aware of the difference between HBase 1.x builds and those of HBase 0.96-0.98.
This difference is important to the build instructions.
[[maven.settings.xml]]
.Example _~/.m2/settings.xml_ File
====
Publishing to maven requires you sign the artifacts you want to upload.
Expand Down Expand Up @@ -626,9 +637,8 @@ Release needs to be tagged for the next step.
. Deploy to the Maven Repository.
+
Next, deploy HBase to the Apache Maven repository, using the `apache-release` profile instead of the `release` profile when running the +mvn
deploy+ command.
This profile invokes the Apache pom referenced by our pom files, and also signs your artifacts published to Maven, as long as the _settings.xml_ is configured correctly, as described in <<mvn.settings.file,mvn.settings.file>>.
Next, deploy HBase to the Apache Maven repository, using the `apache-release` profile instead of the `release` profile when running the `mvn deploy` command.
This profile invokes the Apache pom referenced by our pom files, and also signs your artifacts published to Maven, as long as the _settings.xml_ is configured correctly, as described in <<maven.settings.xml>>.
+
[source,bourne]
----
Expand All @@ -638,6 +648,8 @@ $ mvn deploy -DskipTests -Papache-release
+
This command copies all artifacts up to a temporary staging Apache mvn repository in an 'open' state.
More work needs to be done on these maven artifacts to make them generally available.
+
We do not release HBase tarball to the Apache Maven repository. To avoid deploying the tarball, do not include the `assembly:single` goal in your `mvn deploy` command. Check the deployed artifacts as described in the next section.
. Make the Release Candidate available.
+
Expand Down Expand Up @@ -709,7 +721,7 @@ Announce the release candidate on the mailing list and call a vote.
[[maven.snapshot]]
=== Publishing a SNAPSHOT to maven
Make sure your _settings.xml_ is set up properly, as in <<mvn.settings.file,mvn.settings.file>>.
Make sure your _settings.xml_ is set up properly (see <<maven.settings.xml>>).
Make sure the hbase version includes `-SNAPSHOT` as a suffix.
Following is an example of publishing SNAPSHOTS of a release that had an hbase version of 0.96.0 in its poms.
Expand Down
Loading

0 comments on commit dd8e926

Please sign in to comment.