Author: more
Date: Fri Dec 15 19:39:05 2017
New Revision: 1818319

URL: http://svn.apache.org/viewvc?rev=1818319&view=rev
Log:
KNOX-1122 - Document Ambari Cluster Configuration Monitor ( Phil Zampino via 
Sandeep More)

Modified:
    knox/site/books/knox-0-14-0/dev-guide.html
    knox/site/books/knox-0-14-0/user-guide.html
    knox/site/index.html
    knox/site/issue-tracking.html
    knox/site/license.html
    knox/site/mail-lists.html
    knox/site/project-info.html
    knox/site/team-list.html
    knox/trunk/books/0.14.0/book.md
    knox/trunk/books/0.14.0/config.md
    knox/trunk/books/0.14.0/dev-guide/book.md

Modified: knox/site/books/knox-0-14-0/dev-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-0-14-0/dev-guide.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/books/knox-0-14-0/dev-guide.html (original)
+++ knox/site/books/knox-0-14-0/dev-guide.html Fri Dec 15 19:39:05 2017
@@ -171,6 +171,14 @@
       <td>The implementation of the WebHdfs service. </td>
     </tr>
     <tr>
+      <td>gateway-discovery-ambari </td>
+      <td>The Ambari service URL discovery implementation. </td>
+    </tr>
+    <tr>
+      <td>gateway-service-remoteconfig </td>
+      <td>The implementation of the RemoteConfigurationRegistryClientService. 
</td>
+    </tr>
+    <tr>
       <td>gateway-server </td>
       <td>The implementation of the Knox gateway server. </td>
     </tr>
@@ -368,7 +376,7 @@ public void testDevGuideSample() throws
 
   assertThat( match.getValue(), is( &quot;fake-chain&quot;) );
 }
-</code></pre><h2><a id="Extension+Logistics">Extension Logistics</a> <a 
href="#Extension+Logistics"><img 
src="markbook-section-link.png"/></a></h2><p>There are a number of extension 
points available in the gateway: services, providers, rewrite steps and 
functions, etc. All of these use the Java ServiceLoader mechanism for their 
discovery. There are two ways to make these extensions available on the class 
path at runtime. The first way to add a new module to the project and have the 
extension &ldquo;built-in&rdquo;. The second is to add the extension to the 
class path of the server after it is installed. Both mechanism are described in 
more detail below.</p><h3><a id="Service+Loaders">Service Loaders</a> <a 
href="#Service+Loaders"><img 
src="markbook-section-link.png"/></a></h3><p>Extensions are discovered via 
Java&rsquo;s [Service 
Loader|http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html] 
mechanism. There are good [tutorials|http://docs.oracle.com/javase/tutorial/e
 xt/basics/spi.html] available for learning more about this. The basics come 
town to two things.</p>
+</code></pre><h2><a id="Extension+Logistics">Extension Logistics</a> <a 
href="#Extension+Logistics"><img 
src="markbook-section-link.png"/></a></h2><p>There are a number of extension 
points available in the gateway: services, providers, rewrite steps and 
functions, etc. All of these use the Java ServiceLoader mechanism for their 
discovery. There are two ways to make these extensions available on the class 
path at runtime. The first way to add a new module to the project and have the 
extension &ldquo;built-in&rdquo;. The second is to add the extension to the 
class path of the server after it is installed. Both mechanism are described in 
more detail below.</p><h3><a id="Service+Loaders">Service Loaders</a> <a 
href="#Service+Loaders"><img 
src="markbook-section-link.png"/></a></h3><p>Extensions are discovered via 
Java&rsquo;s <a 
href="http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html";>Service
 Loader</a> mechanism. There are good <a href="http://docs.oracle.com/javase/
 tutorial/ext/basics/spi.html">tutorials</a> available for learning more about 
this. The basics come down to two things.</p>
 <ol>
   <li><p>Implement the service contract interface (e.g. 
ServiceDeploymentContributor, ProviderDeploymentContributor)</p></li>
   <li><p>Create a file in META-INF/services of the JAR that will contain the 
extension. This file will be named as the fully qualified name of the contract 
interface (e.g. 
org.apache.hadoop.gateway.deploy.ProviderDeploymentContributor). The contents 
of the file will be the fully qualified names of any implementation of that 
contract interface in that JAR.</p></li>

Modified: knox/site/books/knox-0-14-0/user-guide.html
URL: 
http://svn.apache.org/viewvc/knox/site/books/knox-0-14-0/user-guide.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/books/knox-0-14-0/user-guide.html (original)
+++ knox/site/books/knox-0-14-0/user-guide.html Fri Dec 15 19:39:05 2017
@@ -38,6 +38,7 @@
       <li><a href="#Externalized+Provider+Configurations">Externalized 
Provider Configurations</a></li>
       <li><a href="#Sharing+HA+Providers">Sharing HA Providers</a></li>
       <li><a href="#Simplified+Descriptor+Files">Simplified Descriptor 
Files</a></li>
+      <li><a href="#Cluster+Configuration+Monitoring">Cluster Configuration 
Monitoring</a></li>
       <li><a href="#Remote+Configuration+Monitor">Remote Configuration 
Monitor</a></li>
       <li><a href="#Remote+Configuration+Registry+Clients">Remote 
Configuration Registry Clients</a></li>
       <li><a href="#Topology+Descriptors">Topology Descriptors</a></li>
@@ -993,7 +994,35 @@ services:
     {&quot;name&quot;:&quot;AMBARIUI&quot;, 
&quot;urls&quot;:[&quot;http://sandbox.hortonworks.com:8080&quot;]}
   ]
 }
-</code></pre><p>Both of these examples illustrate the specification of 
credentials for the interaction with Ambari. If no credentials are specified, 
then the default aliases are queried. Use of the default aliases is sufficient 
for scenarios where topology discovery will only interact with a single Ambari 
instance. For multiple Ambari instances however, it&rsquo;s most likely that 
each will require different sets of credentials. The discovery-user and 
discovery-pwd-alias properties exist for this purpose. Note that whether using 
the default credential aliases or specifying a custom password alias, these <a 
href="#Alias+creation">aliases must be defined</a> prior to any attempt to 
deploy a topology using a simplified descriptor.</p><h5><a 
id="Deployment+Directories">Deployment Directories</a> <a 
href="#Deployment+Directories"><img 
src="markbook-section-link.png"/></a></h5><p>Effecting topology changes is as 
simple as modifying files in two specific directories.</p><p>The <code>{GATEW
 AY_HOME}/conf/shared-providers/</code> directory is the location where Knox 
looks for provider configurations. This directory is monitored for changes, 
such that modifying a provider configuration file therein will trigger updates 
to any referencing simplified descriptors in the 
<code>{GATEWAY_HOME}/conf/descriptors/</code> directory. <em>Care should be 
taken when deleting these files if there are referencing descriptors; any 
subsequent modifications of referencing descriptors will fail when the deleted 
provider configuration cannot be found. The references should all be modified 
before deleting the provider configuration.</em></p><p>Likewise, the 
<code>{GATEWAY_HOME}/conf/descriptors/</code> directory is monitored for 
changes, such that adding or modifying a simplified descriptor file in this 
directory will trigger the generation and deployment of a topology descriptor. 
Deleting a descriptor from this directory will conversely result in the removal 
of the previously-generated topol
 ogy descriptor, and the associated topology will be undeployed.</p><p>If the 
service details for a deployed (generated) topology are changed in the cluster, 
then the Knox topology can be updated by &rsquo;touch&rsquo;ing the simplified 
descriptor. This will trigger discovery and regeneration/redeployment of the 
topology descriptor.</p><p>Note that deleting a generated topology descriptor 
from <code>{GATEWAY_HOME}/conf/topologies/</code> is not sufficient for its 
removal. If the source descriptor is modified, or Knox is restarted, the 
topology descriptor will be regenerated and deployed. Removing generated 
topology descriptors should be done by removing the associated simplified 
descriptor. For the same reason, editing generated topology descriptors is 
strongly discouraged since they can be inadvertently overwritten.</p><p>Another 
means by which these topology changes can be effected is the <a 
href="#Admin+API">Admin API</a>.</p><h5><a 
id="Remote+Configuration+Monitor">Remote Configu
 ration Monitor</a> <a href="#Remote+Configuration+Monitor"><img 
src="markbook-section-link.png"/></a></h5><p>In addition to monitoring local 
directories for provider configurations and simplified descriptors, the gateway 
similarly supports monitoring ZooKeeper.</p><p>This monitor depends on a <a 
href="#Remote+Configuration+Registry+Clients">remote configuration registry 
client</a>, and that client must be specified by setting the following property 
in gateway-site.xml</p>
+</code></pre><p>Both of these examples illustrate the specification of 
credentials for the interaction with Ambari. If no credentials are specified, 
then the default aliases are queried. Use of the default aliases is sufficient 
for scenarios where topology discovery will only interact with a single Ambari 
instance. For multiple Ambari instances however, it&rsquo;s most likely that 
each will require different sets of credentials. The discovery-user and 
discovery-pwd-alias properties exist for this purpose. Note that whether using 
the default credential aliases or specifying a custom password alias, these <a 
href="#Alias+creation">aliases must be defined</a> prior to any attempt to 
deploy a topology using a simplified descriptor.</p><h5><a 
id="Deployment+Directories">Deployment Directories</a> <a 
href="#Deployment+Directories"><img 
src="markbook-section-link.png"/></a></h5><p>Effecting topology changes is as 
simple as modifying files in two specific directories.</p><p>The <code>{GATEW
 AY_HOME}/conf/shared-providers/</code> directory is the location where Knox 
looks for provider configurations. This directory is monitored for changes, 
such that modifying a provider configuration file therein will trigger updates 
to any referencing simplified descriptors in the 
<code>{GATEWAY_HOME}/conf/descriptors/</code> directory. <em>Care should be 
taken when deleting these files if there are referencing descriptors; any 
subsequent modifications of referencing descriptors will fail when the deleted 
provider configuration cannot be found. The references should all be modified 
before deleting the provider configuration.</em></p><p>Likewise, the 
<code>{GATEWAY_HOME}/conf/descriptors/</code> directory is monitored for 
changes, such that adding or modifying a simplified descriptor file in this 
directory will trigger the generation and deployment of a topology descriptor. 
Deleting a descriptor from this directory will conversely result in the removal 
of the previously-generated topol
 ogy descriptor, and the associated topology will be undeployed.</p><p>If the 
service details for a deployed (generated) topology are changed in the cluster, 
then the Knox topology can be updated by &rsquo;touch&rsquo;ing the simplified 
descriptor. This will trigger discovery and regeneration/redeployment of the 
topology descriptor.</p><p>Note that deleting a generated topology descriptor 
from <code>{GATEWAY_HOME}/conf/topologies/</code> is not sufficient for its 
removal. If the source descriptor is modified, or Knox is restarted, the 
topology descriptor will be regenerated and deployed. Removing generated 
topology descriptors should be done by removing the associated simplified 
descriptor. For the same reason, editing generated topology descriptors is 
strongly discouraged since they can be inadvertently overwritten.</p><p>Another 
means by which these topology changes can be effected is the <a 
href="#Admin+API">Admin API</a>.</p><h5><a 
id="Cluster+Configuration+Monitoring">Cluster Co
 nfiguration Monitoring</a> <a href="#Cluster+Configuration+Monitoring"><img 
src="markbook-section-link.png"/></a></h5><p>Another benefit gained through the 
use of simplified topology descriptors, and the associated service discovery, 
is the ability to monitor clusters for configuration changes. <strong>Like 
service discovery, this is currently only available for clusters managed by 
Ambari.</strong></p><p>The gateway can monitor Ambari cluster configurations, 
and respond to changes by dynamically regenerating and redeploying the affected 
topologies. The following properties in gateway-site.xml can be used to control 
this behavior.</p>
+<pre><code>&lt;property&gt;
+    &lt;name&gt;gateway.cluster.config.monitor.ambari.enabled&lt;/name&gt;
+    &lt;value&gt;false&lt;/value&gt;
+    &lt;description&gt;Enable/disable Ambari cluster configuration 
monitoring.&lt;/description&gt;
+&lt;/property&gt;
+
+&lt;property&gt;
+    &lt;name&gt;gateway.cluster.config.monitor.ambari.interval&lt;/name&gt;
+    &lt;value&gt;60&lt;/value&gt;
+    &lt;description&gt;The interval (in seconds) for polling Ambari for 
cluster configuration changes.&lt;/description&gt;
+&lt;/property&gt;
+</code></pre><p>Since service discovery supports multiple Ambari instances as 
discovery sources, multiple Ambari instances can be monitored for cluster 
configuration changes.</p><p>For example, if the cluster monitor is enabled, 
deployment of the following simple descriptor would trigger monitoring of the 
<em>Sandbox</em> cluster managed by Ambari @ <a 
href="http://sandbox.hortonworks.com:8080";>http://sandbox.hortonworks.com:8080</a></p>
+<pre><code>---
+discovery-address : http://sandbox.hortonworks.com:8080
+discovery-user : maria_dev
+discovery-pwd-alias : sandbox.discovery.password
+cluster: Sandbox
+provider-config-ref : sandbox-providers
+services:
+    - name: NAMENODE
+    - name: JOBTRACKER
+    - name: WEBHDFS
+    - name: WEBHCAT
+    - name: OOZIE
+    - name: WEBHBASE
+    - name: HIVE
+    - name: RESOURCEMANAGER
+</code></pre><p>Another <em>Sandbox</em> cluster, managed by a 
<strong>different</strong> Ambari instance, could simultaneously be monitored 
by the same gateway instance.</p><p>Now, topologies can be kept in sync with 
their respective target cluster configurations, without administrator 
intervention or service interruption.</p><h5><a 
id="Remote+Configuration+Monitor">Remote Configuration Monitor</a> <a 
href="#Remote+Configuration+Monitor"><img 
src="markbook-section-link.png"/></a></h5><p>In addition to monitoring local 
directories for provider configurations and simplified descriptors, the gateway 
similarly supports monitoring ZooKeeper.</p><p>This monitor depends on a <a 
href="#Remote+Configuration+Registry+Clients">remote configuration registry 
client</a>, and that client must be specified by setting the following property 
in gateway-site.xml</p>
 <pre><code>&lt;property&gt;
     &lt;name&gt;gateway.remote.config.monitor.client&lt;/name&gt;
     &lt;value&gt;sandbox-zookeeper-client&lt;/value&gt;

Modified: knox/site/index.html
URL: 
http://svn.apache.org/viewvc/knox/site/index.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/index.html (original)
+++ knox/site/index.html Fri Dec 15 19:39:05 2017
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2017-12-14
+ | Generated by Apache Maven Doxia at 2017-12-15
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171214" />
+    <meta name="Date-Revision-yyyymmdd" content="20171215" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; REST API and Application Gateway for the 
Apache Hadoop Ecosystem</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
@@ -58,7 +58,7 @@
               
                 
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-14</li> 
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-15</li> 
             
                             </ul>
       </div>

Modified: knox/site/issue-tracking.html
URL: 
http://svn.apache.org/viewvc/knox/site/issue-tracking.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/issue-tracking.html (original)
+++ knox/site/issue-tracking.html Fri Dec 15 19:39:05 2017
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2017-12-14
+ | Generated by Apache Maven Doxia at 2017-12-15
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171214" />
+    <meta name="Date-Revision-yyyymmdd" content="20171215" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
@@ -58,7 +58,7 @@
               
                 
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-14</li> 
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-15</li> 
             
                             </ul>
       </div>

Modified: knox/site/license.html
URL: 
http://svn.apache.org/viewvc/knox/site/license.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/license.html (original)
+++ knox/site/license.html Fri Dec 15 19:39:05 2017
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2017-12-14
+ | Generated by Apache Maven Doxia at 2017-12-15
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171214" />
+    <meta name="Date-Revision-yyyymmdd" content="20171215" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
@@ -58,7 +58,7 @@
               
                 
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-14</li> 
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-15</li> 
             
                             </ul>
       </div>

Modified: knox/site/mail-lists.html
URL: 
http://svn.apache.org/viewvc/knox/site/mail-lists.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/mail-lists.html (original)
+++ knox/site/mail-lists.html Fri Dec 15 19:39:05 2017
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2017-12-14
+ | Generated by Apache Maven Doxia at 2017-12-15
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171214" />
+    <meta name="Date-Revision-yyyymmdd" content="20171215" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
@@ -58,7 +58,7 @@
               
                 
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-14</li> 
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-15</li> 
             
                             </ul>
       </div>

Modified: knox/site/project-info.html
URL: 
http://svn.apache.org/viewvc/knox/site/project-info.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/project-info.html (original)
+++ knox/site/project-info.html Fri Dec 15 19:39:05 2017
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2017-12-14
+ | Generated by Apache Maven Doxia at 2017-12-15
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171214" />
+    <meta name="Date-Revision-yyyymmdd" content="20171215" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
@@ -58,7 +58,7 @@
               
                 
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-14</li> 
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-15</li> 
             
                             </ul>
       </div>

Modified: knox/site/team-list.html
URL: 
http://svn.apache.org/viewvc/knox/site/team-list.html?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/site/team-list.html (original)
+++ knox/site/team-list.html Fri Dec 15 19:39:05 2017
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2017-12-14
+ | Generated by Apache Maven Doxia at 2017-12-15
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171214" />
+    <meta name="Date-Revision-yyyymmdd" content="20171215" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Knox Gateway &#x2013; Team list</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
@@ -58,7 +58,7 @@
               
                 
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-14</li> 
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-12-15</li> 
             
                             </ul>
       </div>

Modified: knox/trunk/books/0.14.0/book.md
URL: 
http://svn.apache.org/viewvc/knox/trunk/books/0.14.0/book.md?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/trunk/books/0.14.0/book.md (original)
+++ knox/trunk/books/0.14.0/book.md Fri Dec 15 19:39:05 2017
@@ -42,6 +42,7 @@
         * #[Externalized Provider Configurations]
         * #[Sharing HA Providers]
         * #[Simplified Descriptor Files]
+               * #[Cluster Configuration Monitoring]
         * #[Remote Configuration Monitor]
         * #[Remote Configuration Registry Clients]
         * #[Topology Descriptors]

Modified: knox/trunk/books/0.14.0/config.md
URL: 
http://svn.apache.org/viewvc/knox/trunk/books/0.14.0/config.md?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/trunk/books/0.14.0/config.md (original)
+++ knox/trunk/books/0.14.0/config.md Fri Dec 15 19:39:05 2017
@@ -583,6 +583,53 @@ For the same reason, editing generated t
 Another means by which these topology changes can be effected is the [Admin 
API](#Admin+API).
 
 
+##### Cluster Configuration Monitoring #####
+
+Another benefit gained through the use of simplified topology descriptors, and 
the associated service discovery, is the ability to monitor clusters for 
configuration changes.
+__Like service discovery, this is currently only available for clusters 
managed by Ambari.__
+
+The gateway can monitor Ambari cluster configurations, and respond to changes 
by dynamically regenerating and redeploying the affected topologies.
+The following properties in gateway-site.xml can be used to control this 
behavior.
+
+    <property>
+        <name>gateway.cluster.config.monitor.ambari.enabled</name>
+        <value>false</value>
+        <description>Enable/disable Ambari cluster configuration 
monitoring.</description>
+    </property>
+                
+    <property>
+        <name>gateway.cluster.config.monitor.ambari.interval</name>
+        <value>60</value>
+        <description>The interval (in seconds) for polling Ambari for cluster 
configuration changes.</description>
+    </property>
+
+
+Since service discovery supports multiple Ambari instances as discovery 
sources, multiple Ambari instances can be monitored for cluster configuration 
changes.
+
+For example, if the cluster monitor is enabled, deployment of the following 
simple descriptor would trigger monitoring of the *Sandbox* cluster managed by 
Ambari @ http://sandbox.hortonworks.com:8080
+
+    ---
+    discovery-address : http://sandbox.hortonworks.com:8080
+    discovery-user : maria_dev
+    discovery-pwd-alias : sandbox.discovery.password
+    cluster: Sandbox
+    provider-config-ref : sandbox-providers
+    services:
+        - name: NAMENODE
+        - name: JOBTRACKER
+        - name: WEBHDFS
+        - name: WEBHCAT
+        - name: OOZIE
+        - name: WEBHBASE
+        - name: HIVE
+        - name: RESOURCEMANAGER
+
+Another *Sandbox* cluster, managed by a __different__ Ambari instance, could 
simultaneously be monitored by the same gateway instance.
+
+Now, topologies can be kept in sync with their respective target cluster 
configurations, without administrator intervention or service interruption.
+
+
+
 ##### Remote Configuration Monitor #####
 
 In addition to monitoring local directories for provider configurations and 
simplified descriptors, the gateway similarly supports monitoring ZooKeeper.

Modified: knox/trunk/books/0.14.0/dev-guide/book.md
URL: 
http://svn.apache.org/viewvc/knox/trunk/books/0.14.0/dev-guide/book.md?rev=1818319&r1=1818318&r2=1818319&view=diff
==============================================================================
--- knox/trunk/books/0.14.0/dev-guide/book.md (original)
+++ knox/trunk/books/0.14.0/dev-guide/book.md Fri Dec 15 19:39:05 2017
@@ -125,6 +125,8 @@ This is also true of the other -release
 | gateway-service-oozie                          | The implementation of the 
Oozie service.                  |
 | gateway-service-tgs                            | The implementation of the 
Ticket Granting service POC.    |
 | gateway-service-webhdfs                        | The implementation of the 
WebHdfs service.                |
+| gateway-discovery-ambari                       | The Ambari service URL 
discovery implementation.          |
+| gateway-service-remoteconfig                   | The implementation of the 
RemoteConfigurationRegistryClientService. |
 | gateway-server                                 | The implementation of the 
Knox gateway server.            |
 | gateway-shell                                  | The implementation of the 
Knox Groovy shell.              |
 | gateway-test-ldap                              | Pulls in all of the 
dependencies of the test LDAP server. |
@@ -511,9 +513,9 @@ Both mechanism are described in more det
 
 ### Service Loaders ###
 
-Extensions are discovered via Java's [Service 
Loader|http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html] 
mechanism.
-There are good 
[tutorials|http://docs.oracle.com/javase/tutorial/ext/basics/spi.html] 
available for learning more about this.
-The basics come town to two things.
+Extensions are discovered via Java's [Service 
Loader](http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html) 
mechanism.
+There are good 
[tutorials](http://docs.oracle.com/javase/tutorial/ext/basics/spi.html) 
available for learning more about this.
+The basics come down to two things.
 
 1. Implement the service contract interface (e.g. 
ServiceDeploymentContributor, ProviderDeploymentContributor)
 


Reply via email to