http://git-wip-us.apache.org/repos/asf/hbase/blob/48d9d27d/src/main/docbkx/case_studies.xml
----------------------------------------------------------------------
diff --git a/src/main/docbkx/case_studies.xml b/src/main/docbkx/case_studies.xml
index 7824c7d..332caf8 100644
--- a/src/main/docbkx/case_studies.xml
+++ b/src/main/docbkx/case_studies.xml
@@ -145,7 +145,7 @@
             some unusual anomalies, namely interface errors, overruns, framing 
errors. While not
             unheard of, these kinds of errors are exceedingly rare on modern 
hardware which is
             operating as it should: </para>
-          <screen>             
+          <screen language="bourne">           
 $ /sbin/ifconfig bond0
 bond0  Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
 inet addr:10.x.x.x  Bcast:10.x.x.255  Mask:255.255.255.0
@@ -160,7 +160,7 @@ RX bytes:2416328868676 (2.4 TB)  TX bytes:3464991094001 
(3.4 TB)
             running an ICMP ping from an external host and observing 
round-trip-time in excess of
             700ms, and by running <code>ethtool(8)</code> on the members of 
the bond interface and
             discovering that the active interface was operating at 100Mbs/, 
full duplex. </para>
-          <screen>             
+          <screen language="bourne">           
 $ sudo ethtool eth0
 Settings for eth0:
 Supported ports: [ TP ]

http://git-wip-us.apache.org/repos/asf/hbase/blob/48d9d27d/src/main/docbkx/configuration.xml
----------------------------------------------------------------------
diff --git a/src/main/docbkx/configuration.xml 
b/src/main/docbkx/configuration.xml
index 56d17da..74b8e52 100644
--- a/src/main/docbkx/configuration.xml
+++ b/src/main/docbkx/configuration.xml
@@ -62,6 +62,11 @@
         <para>Script for Windows and Linux / Unix environments to set up the 
working environment for
         HBase, including the location of Java, Java options, and other 
environment variables. The
         file contains many commented-out examples to provide guidance.</para>
+        <note>
+          <para>In HBase 0.98.5 and newer, you must set 
<envar>JAVA_HOME</envar> on each node of
+            your cluster. <filename>hbase-env.sh</filename> provides a handy 
mechanism to do
+            this.</para>
+        </note>
       </listitem>
     </varlistentry>
     <varlistentry>
@@ -177,6 +182,12 @@
       </tgroup>
     </table>
 
+    <note>
+      <para>In HBase 0.98.5 and newer, you must set <envar>JAVA_HOME</envar> 
on each node of
+        your cluster. <filename>hbase-env.sh</filename> provides a handy 
mechanism to do
+        this.</para>
+    </note>
+    
     <variablelist
       xml:id="os">
       <title>Operating System Utilities</title>
@@ -357,7 +368,7 @@ hadoop  -       nproc   32000
         <title>Hadoop 2.x is recommended.</title>
         <para>Hadoop 2.x is faster and includes features, such as 
short-circuit reads, which will
           help improve your HBase random read profile. Hadoop 2.x also 
includes important bug fixes
-          that will improve your overall HBase experience. HBase 0.98 
deprecates use of Hadoop 1.x,
+          that will improve your overall HBase experience. HBase 0.98 drops 
support for Hadoop 1.0, deprecates use of Hadoop 1.1+,
           and HBase 1.0 will not support Hadoop 1.x.</para>
       </tip>
       <para>Use the following legend to interpret this table:</para>
@@ -400,7 +411,7 @@ hadoop  -       nproc   32000
               <entry>HBase-0.92.x</entry>
               <entry>HBase-0.94.x</entry>
               <entry>HBase-0.96.x</entry>
-              <entry><para>HBase-0.98.x (Support for Hadoop 1.x is 
deprecated.)</para></entry>
+              <entry><para>HBase-0.98.x (Support for Hadoop 1.1+ is 
deprecated.)</para></entry>
               <entry><para>HBase-1.0.x (Hadoop 1.x is NOT 
supported)</para></entry>
             </row>
           </thead>
@@ -422,21 +433,11 @@ hadoop  -       nproc   32000
               <entry>X</entry>
             </row>
             <row>
-              <entry><para>Hadoop-1.0.0-1.0.2 (HBase requires hadoop 1.0.3 at 
a minimum; there is an
-                  issue where we cannot find KerberosUtil compiling against 
earlier versions of
-                  Hadoop.)</para></entry>
-              <entry>X</entry>
+              <entry>Hadoop-1.0.x</entry>
               <entry>X</entry>
               <entry>X</entry>
               <entry>X</entry>
               <entry>X</entry>
-            </row>
-            <row>
-              <entry>Hadoop-1.0.3+</entry>
-              <entry>S</entry>
-              <entry>S</entry>
-              <entry>S</entry>
-              <entry>X</entry>
               <entry>X</entry>
             </row>
             <row>
@@ -444,7 +445,7 @@ hadoop  -       nproc   32000
               <entry>NT</entry>
               <entry>S</entry>
               <entry>S</entry>
-              <entry>X</entry>
+              <entry>NT</entry>
               <entry>X</entry>
             </row>
             <row>
@@ -474,53 +475,7 @@ hadoop  -       nproc   32000
             <row>
               <entry>Hadoop-2.2.0 </entry>
               <entry>X</entry>
-              <entry><para>NT - To get 0.94.x to run on hadoop 2.2.0, you need 
to change the hadoop
-                  2 and protobuf versions in the <filename>pom.xml</filename>: 
Here is a diff with
-                  pom.xml changes: </para>
-                  <programlisting><![CDATA[$ svn diff pom.xml
-Index: pom.xml
-===================================================================
---- pom.xml     (revision 1545157)
-+++ pom.xml     (working copy)
-@@ -1034,7 +1034,7 @@
-     <slf4j.version>1.4.3</slf4j.version>
-     <log4j.version>1.2.16</log4j.version>
-     <mockito-all.version>1.8.5</mockito-all.version>
--    <protobuf.version>2.4.0a</protobuf.version>
-+    <protobuf.version>2.5.0</protobuf.version>
-     <stax-api.version>1.0.1</stax-api.version>
-     <thrift.version>0.8.0</thrift.version>
-     <zookeeper.version>3.4.5</zookeeper.version>
-@@ -2241,7 +2241,7 @@
-         </property>
-       </activation>
-       <properties>
--        <hadoop.version>2.0.0-alpha</hadoop.version>
-+        <hadoop.version>2.2.0</hadoop.version>
-         <slf4j.version>1.6.1</slf4j.version>
-       </properties>
-       <dependencies>]]>
-                   </programlisting>
-                  <para>The next step is to regenerate Protobuf files and 
assuming that the Protobuf
-                    has been installed:</para>
-                  <itemizedlist>
-                    <listitem>
-                      <para>Go to the hbase root folder, using the command 
line;</para>
-                    </listitem>
-                    <listitem>
-                      <para>Type the following commands:</para>
-                      <para>
-                        <programlisting><![CDATA[$ protoc -Isrc/main/protobuf 
--java_out=src/main/java src/main/protobuf/hbase.proto]]></programlisting>
-                      </para>
-                      <para>
-                        <programlisting><![CDATA[$ protoc -Isrc/main/protobuf 
--java_out=src/main/java 
src/main/protobuf/ErrorHandling.proto]]></programlisting>
-                      </para>
-                    </listitem>
-                  </itemizedlist>
-                  <para> Building against the hadoop 2 profile by running 
something like the
-                    following command: </para>
-                  <screen>$  mvn clean install assembly:single 
-Dhadoop.profile=2.0 -DskipTests</screen>
-                </entry>
+              <entry><link linkend="hadoop2.hbase-0.94">NT</link></entry>
               <entry>S</entry>
               <entry>S</entry>
               <entry>NT</entry>
@@ -567,6 +522,56 @@ Index: pom.xml
         </para>
       </note>
       <section
+        xml:id="hadoop2.hbase-0.94">
+        <title>Apache HBase 0.94 with Hadoop 2</title>
+        <para>To get 0.94.x to run on hadoop 2.2.0, you need to change the 
hadoop
+        2 and protobuf versions in the <filename>pom.xml</filename>: Here is a 
diff with
+        pom.xml changes: </para>
+        <programlisting><![CDATA[$ svn diff pom.xml
+Index: pom.xml
+===================================================================
+--- pom.xml     (revision 1545157)
++++ pom.xml     (working copy)
+@@ -1034,7 +1034,7 @@
+     <slf4j.version>1.4.3</slf4j.version>
+     <log4j.version>1.2.16</log4j.version>
+     <mockito-all.version>1.8.5</mockito-all.version>
+-    <protobuf.version>2.4.0a</protobuf.version>
++    <protobuf.version>2.5.0</protobuf.version>
+     <stax-api.version>1.0.1</stax-api.version>
+     <thrift.version>0.8.0</thrift.version>
+     <zookeeper.version>3.4.5</zookeeper.version>
+@@ -2241,7 +2241,7 @@
+         </property>
+       </activation>
+       <properties>
+-        <hadoop.version>2.0.0-alpha</hadoop.version>
++        <hadoop.version>2.2.0</hadoop.version>
+         <slf4j.version>1.6.1</slf4j.version>
+       </properties>
+       <dependencies>]]>
+                   </programlisting>
+                  <para>The next step is to regenerate Protobuf files and 
assuming that the Protobuf
+                    has been installed:</para>
+                  <itemizedlist>
+                    <listitem>
+                      <para>Go to the hbase root folder, using the command 
line;</para>
+                    </listitem>
+                    <listitem>
+                      <para>Type the following commands:</para>
+                      <para>
+                        <programlisting language="bourne"><![CDATA[$ protoc 
-Isrc/main/protobuf --java_out=src/main/java 
src/main/protobuf/hbase.proto]]></programlisting>
+                      </para>
+                      <para>
+                        <programlisting language="bourne"><![CDATA[$ protoc 
-Isrc/main/protobuf --java_out=src/main/java 
src/main/protobuf/ErrorHandling.proto]]></programlisting>
+                      </para>
+                    </listitem>
+                  </itemizedlist>
+                  <para> Building against the hadoop 2 profile by running 
something like the
+                    following command: </para>
+                  <screen language="bourne">$  mvn clean install 
assembly:single -Dhadoop.profile=2.0 -DskipTests</screen>
+      </section>
+      <section
         xml:id="hadoop.hbase-0.94">
         <title>Apache HBase 0.92 and 0.94</title>
         <para>HBase 0.92 and 0.94 versions can work with Hadoop versions, 
0.20.205, 0.22.x, 1.0.x,
@@ -602,7 +607,7 @@ Index: pom.xml
             <filename>hbase-site.xml</filename> -- and on the serverside in
             <filename>hdfs-site.xml</filename> (The sync facility HBase needs 
is a subset of the
           append code path).</para>
-        <programlisting><![CDATA[  
+        <programlisting language="xml"><![CDATA[  
 <property>
   <name>dfs.support.append</name>
   <value>true</value>
@@ -631,7 +636,7 @@ Index: pom.xml
           Hadoop's <filename>conf/hdfs-site.xml</filename>, setting the
           <varname>dfs.datanode.max.transfer.threads</varname> value to at 
least the following:
         </para>
-        <programlisting><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <property>
   <name>dfs.datanode.max.transfer.threads</name>
   <value>4096</value>
@@ -656,6 +661,14 @@ Index: pom.xml
       </section>
     </section>
     <!--  hadoop -->
+    <section xml:id="zookeeper.requirements">
+      <title>ZooKeeper Requirements</title>
+      <para>ZooKeeper 3.4.x is required as of HBase 1.0.0. HBase makes use of 
the
+        <methodname>multi</methodname> functionality that is only available 
since 3.4.0
+        (The <property>useMulti</property> is defaulted true in HBase 1.0.0).
+        See <link 
href="https://issues.apache.org/jira/browse/HBASE-12241";>HBASE-12241 The crash 
of regionServer when taking deadserver's replication queue breaks 
replication</link>
+        and <link href="https://issues.apache.org/jira/browse/HBASE-6775";>Use 
ZK.multi when available for HBASE-6710 0.92/0.94 compatibility fix</link> for 
background.</para>
+    </section>
   </section>
 
   <section
@@ -764,7 +777,7 @@ Index: pom.xml
           configuration parameters. Most HBase configuration directives have 
default values, which
           are used unless the value is overridden in the 
<filename>hbase-site.xml</filename>. See <xref
             linkend="config.files" /> for more information.</para>
-        <programlisting><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <configuration>
   <property>
     <name>hbase.rootdir</name>
@@ -876,7 +889,7 @@ node-c.example.com
         finally disable and drop your tables.</para>
 
       <para>To stop HBase after exiting the HBase shell enter</para>
-      <screen>$ ./bin/stop-hbase.sh
+      <screen language="bourne">$ ./bin/stop-hbase.sh
 stopping hbase...............</screen>
       <para>Shutdown can take a moment to complete. It can take longer if your 
cluster is comprised
         of many machines. If you are running a distributed operation, be sure 
to wait until HBase
@@ -1048,7 +1061,7 @@ slf4j-log4j (slf4j-log4j12-1.5.8.jar)
 zookeeper (zookeeper-3.4.2.jar)</programlisting>
       </para>
       <para> An example basic <filename>hbase-site.xml</filename> for client 
only might look as
-        follows: <programlisting><![CDATA[
+        follows: <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 <configuration>
@@ -1075,7 +1088,7 @@ zookeeper (zookeeper-3.4.2.jar)</programlisting>
             <filename>hbase.X.X.X.jar</filename>). It is also possible to 
specify configuration
           directly without having to read from a 
<filename>hbase-site.xml</filename>. For example,
           to set the ZooKeeper ensemble for the cluster programmatically do as 
follows:
-          <programlisting>Configuration config = HBaseConfiguration.create();
+          <programlisting language="java">Configuration config = 
HBaseConfiguration.create();
 config.set("hbase.zookeeper.quorum", "localhost");  // Here we are running 
zookeeper locally</programlisting>
           If multiple ZooKeeper instances make up your ZooKeeper ensemble, 
they may be specified in
           a comma-separated list (just as in the 
<filename>hbase-site.xml</filename> file). This
@@ -1111,7 +1124,7 @@ config.set("hbase.zookeeper.quorum", "localhost");  // 
Here we are running zooke
         xml:id="hbase_site">
         <title><filename>hbase-site.xml</filename></title>
 
-        <programlisting>
+        <programlisting language="bourne">
 <![CDATA[
 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
@@ -1125,7 +1138,7 @@ config.set("hbase.zookeeper.quorum", "localhost");  // 
Here we are running zooke
   <property>
     <name>hbase.zookeeper.property.dataDir</name>
     <value>/export/zookeeper</value>
-    <description>Property from ZooKeeper's config zoo.cfg.
+    <description>Property from ZooKeeper config zoo.cfg.
     The directory where the snapshot is stored.
     </description>
   </property>
@@ -1172,27 +1185,17 @@ example9
         xml:id="hbase_env">
         <title><filename>hbase-env.sh</filename></title>
 
-        <para>Below we use a <command>diff</command> to show the differences 
from default in the
-            <filename>hbase-env.sh</filename> file. Here we are setting the 
HBase heap to be 4G
-          instead of the default 1G.</para>
-
-        <screen>
-
-$ git diff hbase-env.sh
-diff --git a/conf/hbase-env.sh b/conf/hbase-env.sh
-index e70ebc6..96f8c27 100644
---- a/conf/hbase-env.sh
-+++ b/conf/hbase-env.sh
-@@ -31,7 +31,7 @@ export JAVA_HOME=/usr/lib//jvm/java-6-sun/
- # export HBASE_CLASSPATH=
-
- # The maximum amount of heap to use, in MB. Default is 1000.
--# export HBASE_HEAPSIZE=1000
-+export HBASE_HEAPSIZE=4096
+        <para>The following lines in the <filename>hbase-env.sh</filename> 
file show how to set the
+            <envar>JAVA_HOME</envar> environment variable (required for HBase 
0.98.5 and newer) and
+          set the heap to 4 GB (rather than the default value of 1 GB). If you 
copy and paste this
+          example, be sure to adjust the <envar>JAVA_HOME</envar> to suit your 
environment.</para>
 
- # Extra Java runtime options.
- # Below are what we set by default.  May only work with SUN JVM.
+        <screen language="bourne">
+# The java implementation to use.
+export JAVA_HOME=/usr/java/jdk1.7.0/          
 
+# The maximum amount of heap to use, in MB. Default is 1000.
+export HBASE_HEAPSIZE=4096
         </screen>
 
         <para>Use <command>rsync</command> to copy the content of the 
<filename>conf</filename>
@@ -1463,7 +1466,7 @@ index e70ebc6..96f8c27 100644
           running on a late-version HDFS so you have the fixes he refers too 
and himself adds to HDFS that help HBase MTTR
           (e.g. HDFS-3703, HDFS-3712, and HDFS-4791 -- hadoop 2 for sure has 
them and late hadoop 1 has some).
           Set the following in the RegionServer.</para>
-      <programlisting>
+      <programlisting language="xml">
 <![CDATA[<property>
 <property>
     <name>hbase.lease.recovery.dfs.timeout</name>
@@ -1480,7 +1483,7 @@ index e70ebc6..96f8c27 100644
 
         <para>And on the namenode/datanode side, set the following to enable 
'staleness' introduced
           in HDFS-3703, HDFS-3912. </para>
-        <programlisting><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <property>
     <name>dfs.client.socket-timeout</name>
     <value>10000</value>
@@ -1537,7 +1540,7 @@ index e70ebc6..96f8c27 100644
         <para>As an alternative, You can use the coprocessor-based JMX 
implementation provided
           by HBase. To enable it in 0.99 or above, add below property in
           <filename>hbase-site.xml</filename>:
-        <programlisting><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <property>
     <name>hbase.coprocessor.regionserver.classes</name>
     <value>org.apache.hadoop.hbase.JMXListener</value>
@@ -1553,7 +1556,7 @@ index e70ebc6..96f8c27 100644
           By default, the JMX listens on TCP port 10102, you can further 
configure the port
           using below properties:
 
-        <programlisting><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <property>
     <name>regionserver.rmi.registry.port</name>
     <value>61130</value>
@@ -1571,7 +1574,7 @@ index e70ebc6..96f8c27 100644
         <para>By default the password authentication and SSL communication is 
disabled.
           To enable password authentication, you need to update 
<filename>hbase-env.sh</filename>
           like below:
-      <screen>
+      <screen language="bourne">
 export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.authenticate=true        
          \
                        
-Dcom.sun.management.jmxremote.password.file=your_password_file   \
                        
-Dcom.sun.management.jmxremote.access.file=your_access_file"
@@ -1583,7 +1586,7 @@ export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS 
$HBASE_JMX_BASE "
         </para>
 
         <para>To enable SSL communication with password authentication, follow 
below steps:
-      <screen>
+      <screen language="bourne">
 #1. generate a key pair, stored in myKeyStore
 keytool -genkey -alias jconsole -keystore myKeyStore
 
@@ -1594,10 +1597,10 @@ keytool -export -alias jconsole -keystore myKeyStore 
-file jconsole.cert
 keytool -import -alias jconsole -keystore jconsoleKeyStore -file jconsole.cert
       </screen>
           And then update <filename>hbase-env.sh</filename> like below:
-      <screen>
+      <screen language="bourne">
 export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=true                 
        \
                        -Djavax.net.ssl.keyStore=/home/tianq/myKeyStore         
        \
-                       
-Djavax.net.ssl.keyStorePassword=your_password_in_step_#1       \
+                       
-Djavax.net.ssl.keyStorePassword=your_password_in_step_1       \
                        -Dcom.sun.management.jmxremote.authenticate=true        
        \
                        
-Dcom.sun.management.jmxremote.password.file=your_password file \
                        
-Dcom.sun.management.jmxremote.access.file=your_access_file"
@@ -1607,13 +1610,13 @@ export 
HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE "
       </screen>
 
           Finally start jconsole on client using the key store:
-      <screen>
+      <screen language="bourne">
 jconsole -J-Djavax.net.ssl.trustStore=/home/tianq/jconsoleKeyStore
       </screen>
         </para>
         <para>NOTE: for HBase 0.98, To enable the HBase JMX implementation on 
Master, you also
           need to add below property in <filename>hbase-site.xml</filename>:
-        <programlisting><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <property>
     <name>hbase.coprocessor.master.classes</name>
     <value>org.apache.hadoop.hbase.JMXListener</value>

http://git-wip-us.apache.org/repos/asf/hbase/blob/48d9d27d/src/main/docbkx/cp.xml
----------------------------------------------------------------------
diff --git a/src/main/docbkx/cp.xml b/src/main/docbkx/cp.xml
index 04433c1..8624309 100644
--- a/src/main/docbkx/cp.xml
+++ b/src/main/docbkx/cp.xml
@@ -263,7 +263,7 @@
       <example>
         <title>Example RegionObserver Configuration</title>
         <para>In this example, one RegionObserver is configured for all the 
HBase tables.</para>
-        <screen><![CDATA[
+        <screen language="xml"><![CDATA[
 <property>
     <name>hbase.coprocessor.region.classes</name>
     <value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
@@ -400,6 +400,30 @@ coprocessors=[AggregateImplementation]
     </screen>
   </section>
   <section>
+    <title>Monitor Time Spent in Coprocessors</title>
+    <para>HBase 0.98.5 introduced the ability to monitor some statistics 
relating to the amount of
+      time spent executing a given coprocessor. You can see these statistics 
via the HBase Metrics
+      framework (see <xref linkend="hbase_metrics"/> or the Web UI for a given 
Region Server, via
+      the <guilabel>Coprocessor Metrics</guilabel> tab. These statistics are 
valuable for debugging
+      and benchmarking the performance impact of a given coprocessor on your 
cluster. Tracked
+      statistics include min, max, average, and 90th, 95th, and 99th 
percentile. All times are shown
+      in milliseconds. The statistics are calculated over coprocessor
+      execution samples recorded during the reporting interval, which is 10 
seconds by default. The
+      metrics sampling rate as described in <xref linkend="hbase_metrics" 
/>.</para>
+    <figure>
+      <title>Coprocessor Metrics UI</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="coprocessor_stats.png" width="100%"/>
+        </imageobject>
+        <caption>
+          <para>The Coprocessor Metrics UI shows statistics about time spent 
executing a given
+            coprocessor, including min, max, average, and 90th, 95th, and 99th 
percentile.</para>
+        </caption>
+      </mediaobject>
+    </figure>
+  </section>
+  <section>
     <title>Status of Coprocessors in HBase</title>
     <para> Coprocessors and the coprocessor framework are evolving rapidly and 
work is ongoing on
       several different JIRAs. </para>

http://git-wip-us.apache.org/repos/asf/hbase/blob/48d9d27d/src/main/docbkx/customization.xsl
----------------------------------------------------------------------
diff --git a/src/main/docbkx/customization.xsl 
b/src/main/docbkx/customization.xsl
index 43d8df7..5d0ec2c 100644
--- a/src/main/docbkx/customization.xsl
+++ b/src/main/docbkx/customization.xsl
@@ -22,6 +22,7 @@
  */
 -->
   <xsl:import href="urn:docbkx:stylesheet"/>
+  <xsl:import href="urn:docbkx:stylesheet/highlight.xsl"/>
   <xsl:output method="html" encoding="UTF-8" indent="no"/>
 
   <xsl:template name="user.header.content">

Reply via email to