Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-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 DC02C18FED for ; Tue, 25 Aug 2015 23:17:25 +0000 (UTC) Received: (qmail 18303 invoked by uid 500); 25 Aug 2015 23:17:25 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 18254 invoked by uid 500); 25 Aug 2015 23:17:25 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 18245 invoked by uid 99); 25 Aug 2015 23:17:25 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Aug 2015 23:17:25 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 9342EE027D; Tue, 25 Aug 2015 23:17:25 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: stack@apache.org To: commits@hbase.apache.org Message-Id: <21f51c83d08a4e23a06371ee0f117a2a@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: hbase git commit: Updated documentation from master Date: Tue, 25 Aug 2015 23:17:25 +0000 (UTC) Repository: hbase Updated Branches: refs/heads/branch-1.1 50de49579 -> 2eda3f38c Updated documentation from master Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2eda3f38 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2eda3f38 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2eda3f38 Branch: refs/heads/branch-1.1 Commit: 2eda3f38c668ef03416520b53a9aaa93d9d330a7 Parents: 50de495 Author: Enis Soztutar Authored: Tue Aug 25 15:44:39 2015 -0700 Committer: stack Committed: Tue Aug 25 16:17:18 2015 -0700 ---------------------------------------------------------------------- src/main/asciidoc/_chapters/architecture.adoc | 2 +- src/main/asciidoc/_chapters/ops_mgt.adoc | 21 +++++++++++++++++++++ src/main/asciidoc/_chapters/performance.adoc | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/2eda3f38/src/main/asciidoc/_chapters/architecture.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/_chapters/architecture.adoc b/src/main/asciidoc/_chapters/architecture.adoc index 740b585..e6a71f1 100644 --- a/src/main/asciidoc/_chapters/architecture.adoc +++ b/src/main/asciidoc/_chapters/architecture.adoc @@ -1495,7 +1495,7 @@ The minimum flush unit is per region, not at individual MemStore level. * The `RegionScanner` object contains a list of `StoreScanner` objects, one per column family. * Each `StoreScanner` object further contains a list of `StoreFileScanner` objects, corresponding to each StoreFile and HFile of the corresponding column family, and a list of `KeyValueScanner` objects for the MemStore. * The two lists are merged into one, which is sorted in ascending order with the scan object for the MemStore at the end of the list. -* When a `StoreFileScanner` object is constructed, it is associated with a `MultiVersionConsistencyControl` read point, which is the current `memstoreTS`, filtering out any new updates beyond the read point. +* When a `StoreFileScanner` object is constructed, it is associated with a `MultiVersionConcurrencyControl` read point, which is the current `memstoreTS`, filtering out any new updates beyond the read point. [[hfile]] ==== StoreFile (HFile) http://git-wip-us.apache.org/repos/asf/hbase/blob/2eda3f38/src/main/asciidoc/_chapters/ops_mgt.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/_chapters/ops_mgt.adoc b/src/main/asciidoc/_chapters/ops_mgt.adoc index 514003d..af99215 100644 --- a/src/main/asciidoc/_chapters/ops_mgt.adoc +++ b/src/main/asciidoc/_chapters/ops_mgt.adoc @@ -92,6 +92,8 @@ Usage: bin/hbase org.apache.hadoop.hbase.tool.Canary [opts] [table1 [table2]...] which means the region/regionserver is regular expression pattern -f stop whole program if first error occurs, default is true -t timeout for a check, default is 600000 (milliseconds) + -writeSniffing enable the write sniffing in canary + -writeTable The table used for write sniffing. Default is hbase:canary ---- This tool will return non zero error codes to user for collaborating with other monitoring tools, such as Nagios. @@ -193,6 +195,25 @@ This run sets the timeout value to 60 seconds, the default value is 600 seconds. $ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.tool.Canary -t 600000 ---- +==== Enable write sniffing in canary + +By default, the canary tool only check the read operations, it's hard to find the problem in the +write path. To enable the write sniffing, you can run canary with the `-writeSniffing` option. +When the write sniffing is enabled, the canary tool will create a hbase table and make sure the +regions of the table distributed on all region servers. In each sniffing period, the canary will +try to put data to these regions to check the write availability of each region server. +---- +$ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.tool.Canary -writeSniffing +---- + +The default write table is `hbase:canary` and can be specified by the option `-writeTable`. +---- +$ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.tool.Canary -writeSniffing -writeTable ns:canary +---- + +The default value size of each put is 10 bytes and you can set it by the config key: +`hbase.canary.write.value.size`. + ==== Running Canary in a Kerberos-enabled Cluster To run Canary in a Kerberos-enabled cluster, configure the following two properties in _hbase-site.xml_: http://git-wip-us.apache.org/repos/asf/hbase/blob/2eda3f38/src/main/asciidoc/_chapters/performance.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/_chapters/performance.adoc b/src/main/asciidoc/_chapters/performance.adoc index f213175..90ee4bf 100644 --- a/src/main/asciidoc/_chapters/performance.adoc +++ b/src/main/asciidoc/_chapters/performance.adoc @@ -109,7 +109,7 @@ The link:http://en.wikipedia.org/wiki/CAP_theorem[CAP Theorem] states that a dis HBase favors consistency and partition tolerance, where a decision has to be made. Coda Hale explains why partition tolerance is so important, in http://codahale.com/you-cant-sacrifice-partition-tolerance/. -Robert Yokota used an automated testing framework called link:https://aphyr.com/tags/jepsen[Jepson] to test HBase's partition tolerance in the face of network partitions, using techniques modeled after Aphyr's link:https://aphyr.com/posts/281-call-me-maybe-carly-rae-jepsen-and-the-perils-of-network-partitions[Call Me Maybe] series. The results, available as a link:http://eng.yammer.com/call-me-maybe-hbase/[blog post] and an link:http://eng.yammer.com/call-me-maybe-hbase-addendum/[addendum], show that HBase performs correctly. +Robert Yokota used an automated testing framework called link:https://aphyr.com/tags/jepsen[Jepson] to test HBase's partition tolerance in the face of network partitions, using techniques modeled after Aphyr's link:https://aphyr.com/posts/281-call-me-maybe-carly-rae-jepsen-and-the-perils-of-network-partitions[Call Me Maybe] series. The results, available as a link:http://old.eng.yammer.com/call-me-maybe-hbase/[blog post] and an link:http://old.eng.yammer.com/call-me-maybe-hbase-addendum/[addendum], show that HBase performs correctly. [[jvm]] == Java