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( "fake-chain") );
}
-</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 “built-in”. 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’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 “built-in”. 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’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:
{"name":"AMBARIUI",
"urls":["http://sandbox.hortonworks.com:8080"]}
]
}
-</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’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 ’touch’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’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 ’touch’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><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>
+</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><property>
<name>gateway.remote.config.monitor.client</name>
<value>sandbox-zookeeper-client</value>
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 – 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 – 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 – 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 – 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 – 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 – 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)