hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jia...@apache.org
Subject [92/93] [abbrv] hadoop git commit: YARN-7198. Add jsvc support for RegistryDNS. Contributed by Billie Rinaldi
Date Fri, 13 Oct 2017 18:22:38 GMT
YARN-7198. Add jsvc support for RegistryDNS. Contributed by Billie Rinaldi


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/44ae7fca
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/44ae7fca
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/44ae7fca

Branch: refs/heads/yarn-native-services
Commit: 44ae7fca39727b3f5f01d9541f41a7c549864dfa
Parents: 9a8c80c
Author: Jian He <jianhe@apache.org>
Authored: Fri Oct 13 10:49:38 2017 -0700
Committer: Jian He <jianhe@apache.org>
Committed: Fri Oct 13 11:03:04 2017 -0700

----------------------------------------------------------------------
 hadoop-yarn-project/hadoop-yarn/bin/yarn        |  6 ++
 .../hadoop-yarn/conf/yarn-env.sh                | 12 +++
 .../hadoop-yarn/hadoop-yarn-registry/pom.xml    | 73 +++++++++++++++++-
 .../dns/PrivilegedRegistryDNSStarter.java       | 80 ++++++++++++++++++++
 .../hadoop/registry/server/dns/RegistryDNS.java | 45 +++++++----
 .../registry/server/dns/RegistryDNSServer.java  | 57 +++++---------
 .../src/site/markdown/YarnCommands.md           |  8 ++
 .../src/site/markdown/registry/index.md         |  1 +
 .../markdown/registry/registry-configuration.md |  4 +-
 .../site/markdown/yarn-service/RegistryDNS.md   | 40 +++++++++-
 .../markdown/yarn-service/ServiceDiscovery.md   | 21 ++++-
 11 files changed, 282 insertions(+), 65 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/bin/yarn
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn
index 05d892b..727384c 100755
--- a/hadoop-yarn-project/hadoop-yarn/bin/yarn
+++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn
@@ -45,6 +45,7 @@ function hadoop_usage
   hadoop_add_subcommand "nodemanager" daemon "run a nodemanager on each worker"
   hadoop_add_subcommand "proxyserver" daemon "run the web app proxy server"
   hadoop_add_subcommand "queue" client "prints queue information"
+  hadoop_add_subcommand "registrydns" daemon "run the registry DNS server"
   hadoop_add_subcommand "resourcemanager" daemon "run the ResourceManager"
   hadoop_add_subcommand "rmadmin" admin "admin tools"
   hadoop_add_subcommand "router" daemon "run the Router daemon"
@@ -143,6 +144,11 @@ ${HADOOP_COMMON_HOME}/${HADOOP_COMMON_LIB_JARS_DIR}"
     queue)
       HADOOP_CLASSNAME=org.apache.hadoop.yarn.client.cli.QueueCLI
     ;;
+    registrydns)
+      HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true"
+      HADOOP_SECURE_CLASSNAME='org.apache.hadoop.registry.server.dns.PrivilegedRegistryDNSStarter'
+      HADOOP_CLASSNAME='org.apache.hadoop.registry.server.dns.RegistryDNSServer'
+    ;;
     resourcemanager)
       HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true"
       HADOOP_CLASSNAME='org.apache.hadoop.yarn.server.resourcemanager.ResourceManager'

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/conf/yarn-env.sh
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/conf/yarn-env.sh b/hadoop-yarn-project/hadoop-yarn/conf/yarn-env.sh
index 90a87bf..4bd1d3e 100644
--- a/hadoop-yarn-project/hadoop-yarn/conf/yarn-env.sh
+++ b/hadoop-yarn-project/hadoop-yarn/conf/yarn-env.sh
@@ -160,3 +160,15 @@
 # See ResourceManager for some examples
 #
 #export YARN_APISERVER_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps
-Xloggc:${HADOOP_LOG_DIR}/gc-apiserver.log-$(date +'%Y%m%d%H%M')"
+
+###
+# Registry DNS specific parameters
+###
+# For privileged registry DNS, user to run as after dropping privileges
+# This will replace the hadoop.id.str Java property in secure mode.
+# export YARN_REGISTRYDNS_SECURE_USER=yarn
+
+# Supplemental options for privileged registry DNS
+# By default, Hadoop uses jsvc which needs to know to launch a
+# server jvm.
+# export YARN_REGISTRYDNS_SECURE_EXTRA_OPTS="-jvm server"

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/pom.xml
index e083312..4e805cd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/pom.xml
@@ -34,6 +34,21 @@
   <dependencies>
 
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-auth</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-annotations</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-yarn-api</artifactId>
     </dependency>
@@ -70,14 +85,68 @@
     </dependency>
 
     <dependency>
+      <groupId>org.apache.zookeeper</groupId>
+      <artifactId>zookeeper</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.curator</groupId>
+      <artifactId>curator-client</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>org.apache.curator</groupId>
       <artifactId>curator-framework</artifactId>
     </dependency>
 
     <dependency>
       <groupId>org.apache.curator</groupId>
-      <artifactId>curator-test</artifactId>
-      <scope>test</scope>
+      <artifactId>curator-recipes</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-daemon</groupId>
+      <artifactId>commons-daemon</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-net</groupId>
+      <artifactId>commons-net</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/PrivilegedRegistryDNSStarter.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/PrivilegedRegistryDNSStarter.java
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/PrivilegedRegistryDNSStarter.java
new file mode 100644
index 0000000..dd4e1b8
--- /dev/null
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/PrivilegedRegistryDNSStarter.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.registry.server.dns;
+
+import org.apache.commons.daemon.Daemon;
+import org.apache.commons.daemon.DaemonContext;
+import org.apache.hadoop.registry.client.api.DNSOperationsFactory;
+import org.apache.hadoop.util.GenericOptionsParser;
+import org.apache.hadoop.util.StringUtils;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.hadoop.registry.client.api.RegistryConstants.DEFAULT_DNS_PORT;
+import static org.apache.hadoop.registry.client.api.RegistryConstants.KEY_DNS_PORT;
+
+/**
+ * This class is used to allow the RegistryDNSServer to run on a privileged
+ * port (e.g. 53).
+ */
+public class PrivilegedRegistryDNSStarter implements Daemon {
+  private static final Logger LOG =
+      LoggerFactory.getLogger(PrivilegedRegistryDNSStarter.class);
+
+  private YarnConfiguration conf;
+  private RegistryDNS registryDNS;
+  private RegistryDNSServer registryDNSServer;
+
+  @Override
+  public void init(DaemonContext context) throws Exception {
+    String[] args = context.getArguments();
+    StringUtils.startupShutdownMessage(RegistryDNSServer.class, args, LOG);
+    conf = new YarnConfiguration();
+    new GenericOptionsParser(conf, args);
+
+    int port = conf.getInt(KEY_DNS_PORT, DEFAULT_DNS_PORT);
+    if (port < 1 || port > 1023) {
+      throw new RuntimeException("Must start privileged registry DNS server " +
+          "with '" + KEY_DNS_PORT + "' configured to a privileged port.");
+    }
+
+    try {
+      registryDNS = (RegistryDNS) DNSOperationsFactory.createInstance(conf);
+      registryDNS.initializeChannels(conf);
+    } catch (Exception e) {
+      LOG.error("Error initializing Registry DNS", e);
+      throw e;
+    }
+  }
+
+  @Override
+  public void start() throws Exception {
+    registryDNSServer = RegistryDNSServer.launchDNSServer(conf, registryDNS);
+  }
+
+  @Override
+  public void stop() throws Exception {
+  }
+
+  @Override
+  public void destroy() {
+    registryDNSServer.stop();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java
index 51139be..d7a415d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java
@@ -82,6 +82,7 @@ import java.util.Calendar;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentHashMap;
@@ -130,6 +131,8 @@ public class RegistryDNS extends AbstractService implements DNSOperations,
   private ConcurrentMap<Name, Zone> zones = new ConcurrentHashMap<>();
   private Name bindHost;
 
+  private boolean channelsInitialized = false;
+
   /**
    * Construct the service.
    *
@@ -150,6 +153,24 @@ public class RegistryDNS extends AbstractService implements DNSOperations,
         });
   }
 
+  public void initializeChannels(Configuration conf) throws Exception {
+    if (channelsInitialized) {
+      return;
+    }
+    channelsInitialized = true;
+    int port = conf.getInt(KEY_DNS_PORT, DEFAULT_DNS_PORT);
+    InetAddress addr = InetAddress.getLocalHost();
+
+    String bindAddress = conf.get(KEY_DNS_BIND_ADDRESS);
+    if (bindAddress != null) {
+      addr = InetAddress.getByName(bindAddress);
+    }
+
+    LOG.info("Opening TCP and UDP channels on {} port {}", addr, port);
+    addNIOUDP(addr, port);
+    addNIOTCP(addr, port);
+  }
+
   /**
    * Initializes the registry.
    *
@@ -164,17 +185,9 @@ public class RegistryDNS extends AbstractService implements DNSOperations,
     try {
       setDomainName(conf);
 
-      int port = initializeZones(conf);
-
-      InetAddress addr = InetAddress.getLocalHost();
-
-      String bindAddress = conf.get(KEY_DNS_BIND_ADDRESS);
-      if (bindAddress != null) {
-        addr = InetAddress.getByName(bindAddress);
-      }
-      addNIOUDP(addr, port);
-      addNIOTCP(addr, port);
+      initializeZones(conf);
 
+      initializeChannels(conf);
     } catch (IOException e) {
       LOG.error("Error initializing Registry DNS Server", e);
       throw e;
@@ -189,8 +202,7 @@ public class RegistryDNS extends AbstractService implements DNSOperations,
    * @return the listener port
    * @throws IOException
    */
-  int initializeZones(Configuration conf) throws IOException {
-    int port = conf.getInt(KEY_DNS_PORT, DEFAULT_DNS_PORT);
+  void initializeZones(Configuration conf) throws IOException {
     ttl = conf.getTimeDuration(KEY_DNS_TTL, 1L, TimeUnit.SECONDS);
     RecordCreatorFactory.setTtl(ttl);
 
@@ -203,7 +215,12 @@ public class RegistryDNS extends AbstractService implements DNSOperations,
 
     initializeReverseLookupZone(conf);
 
-    return port;
+    StringBuilder builder = new StringBuilder();
+    builder.append("DNS zones: ").append(System.lineSeparator());
+    for (Map.Entry<Name, Zone> entry : zones.entrySet()) {
+      builder.append(System.lineSeparator()).append(entry.getValue());
+    }
+    LOG.info(builder.toString());
   }
 
   /**
@@ -1412,7 +1429,7 @@ public class RegistryDNS extends AbstractService implements DNSOperations,
         }
         processor.manageDNSRecords(command);
       } else {
-        LOG.warn("Yarn Resgistry record {} does not contain {} attribute ",
+        LOG.warn("Yarn Registry record {} does not contain {} attribute ",
                   record.toString(), YarnRegistryAttributes.YARN_PERSISTENCE);
       }
     } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNSServer.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNSServer.java
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNSServer.java
index faa5fe1..c7f6831 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNSServer.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNSServer.java
@@ -17,11 +17,6 @@
 package org.apache.hadoop.registry.server.dns;
 
 import com.google.common.base.Preconditions;
-import org.apache.commons.cli.BasicParser;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.PathNotFoundException;
 import org.apache.hadoop.registry.client.api.DNSOperationsFactory;
@@ -65,9 +60,11 @@ public class RegistryDNSServer extends CompositeService {
   /**
    * Creates the DNS server.
    * @param name the server name.
+   * @param registryDNS the registry DNS instance.
    */
-  public RegistryDNSServer(String name) {
+  public RegistryDNSServer(String name, final RegistryDNS registryDNS) {
     super(name);
+    this.registryDNS = registryDNS;
   }
 
   /**
@@ -83,8 +80,9 @@ public class RegistryDNSServer extends CompositeService {
     registryOperations = new RegistryOperationsService("RegistryDNSOperations");
     addService(registryOperations);
 
-    // probably need to populate with existing apps?
-    registryDNS = (RegistryDNS) DNSOperationsFactory.createInstance(conf);
+    if (registryDNS == null) {
+      registryDNS = (RegistryDNS) DNSOperationsFactory.createInstance(conf);
+    }
     addService(registryDNS);
 
     super.serviceInit(conf);
@@ -231,24 +229,21 @@ public class RegistryDNSServer extends CompositeService {
 
   /**
    * Launch the server.
-   * @param args command line args.
+   * @param conf configuration
+   * @param rdns registry dns instance
    * @return
    */
-  static RegistryDNSServer launchDNSServer(String[] args) {
+  static RegistryDNSServer launchDNSServer(Configuration conf,
+      RegistryDNS rdns) {
     RegistryDNSServer dnsServer = null;
 
     Thread
         .setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler());
-    StringUtils.startupShutdownMessage(RegistryDNSServer.class, args,
-                                       LOG);
     try {
-      dnsServer = new RegistryDNSServer("RegistryDNSServer");
+      dnsServer = new RegistryDNSServer("RegistryDNSServer", rdns);
       ShutdownHookManager.get().addShutdownHook(
           new CompositeService.CompositeServiceShutdownHook(dnsServer),
           SHUTDOWN_HOOK_PRIORITY);
-      YarnConfiguration conf = new YarnConfiguration();
-      processCommandLine(args, conf);
-      new GenericOptionsParser(conf, args);
       dnsServer.init(conf);
       dnsServer.start();
     } catch (Throwable t) {
@@ -259,32 +254,14 @@ public class RegistryDNSServer extends CompositeService {
   }
 
   /**
-   * Process input command line arguments.
-   * @param args the command line argument array.
-   * @param conf  the configuration.
-   */
-  private static void processCommandLine(String[] args,
-                                         YarnConfiguration conf) {
-    Options options = new Options();
-    options.addOption("p", "port", true,
-                      "the server listening port (override)");
-
-    CommandLineParser parser = new BasicParser();
-    try {
-      CommandLine cmd = parser.parse(options, args);
-      if (cmd.hasOption("p")) {
-        conf.set(RegistryConstants.KEY_DNS_PORT, cmd.getOptionValue("p"));
-      }
-    } catch (ParseException e) {
-      LOG.error("Error parsing the command line options", e);
-    }
-  }
-
-  /**
    * Lanches the server instance.
    * @param args the command line args.
+   * @throws IOException if command line options can't be parsed
    */
-  public static void main(String[] args) {
-    launchDNSServer(args);
+  public static void main(String[] args) throws IOException {
+    StringUtils.startupShutdownMessage(RegistryDNSServer.class, args, LOG);
+    YarnConfiguration conf = new YarnConfiguration();
+    new GenericOptionsParser(conf, args);
+    launchDNSServer(conf, null);
   }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
index 51e27cc..6f00c5c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnCommands.md
@@ -329,9 +329,17 @@ Usage: `yarn timelineserver`
 Start the TimeLineServer
 
 ### apiserver
+
 Usage: `yarn apiserver`
+
 Start the API-server for deploying/managing services on YARN
 
+### registrydns
+
+Usage: `yarn registrydns`
+
+Start the RegistryDNS server
+
 Files
 -----
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/index.md
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/index.md
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/index.md
index 3a648b6..0a127cd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/index.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/index.md
@@ -22,6 +22,7 @@ to allow deployed applications to register themselves and the means of
 communicating with them. Client applications can then locate services
 and use the binding information to connect with the services's network-accessible
 endpoints, be they REST, IPC, Web UI, Zookeeper quorum+path or some other protocol.
+Currently, all the registry data is stored in a zookeeper cluster.
 
 * [Architecture](yarn-registry.html)
 * [Configuration](registry-configuration.html)

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/registry-configuration.md
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/registry-configuration.md
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/registry-configuration.md
index adca451..46bc92d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/registry-configuration.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/registry/registry-configuration.md
@@ -90,7 +90,7 @@ and the ports on which the ZK services are listening.
 ```
   <property>
     <description>
-      List of hostname:port pairs defining the
+      A comma separated list of hostname:port pairs defining the
       zookeeper quorum binding for the registry
     </description>
     <name>hadoop.registry.zk.quorum</name>
@@ -339,7 +339,7 @@ concluding that the quorum is unreachable and failing.
 
   <property>
     <description>
-      List of hostname:port pairs defining the
+      A comma separated list of hostname:port pairs defining the
       zookeeper quorum binding for the registry
     </description>
     <name>hadoop.registry.zk.quorum</name>

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/RegistryDNS.md
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/RegistryDNS.md
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/RegistryDNS.md
index ef395fc..c7f19ce 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/RegistryDNS.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/RegistryDNS.md
@@ -15,7 +15,7 @@
 # Registry DNS Server
 
 <!-- MACRO{toc|fromDepth=0|toDepth=3} -->
-
+The document describes the internals of Registry DNS server. It is based on the [YARN service
registry](../registry/index.md) which is backed by a zookeeper cluster.
 ## Introduction
 
 The Registry DNS Server provides a standard DNS interface to the information posted into
the YARN Registry by deployed applications. The DNS service serves the following functions:
@@ -102,7 +102,7 @@ maps to the application user and so on. Wherever it is not easily distinguishabl
 “container” or suffix such as “api”. For example, an endpoint published as a
 management endpoint will be referenced with the name *management-api.griduser.yarncluster.com*.
 * Unique application name (per user) is not currently supported/guaranteed by YARN, but
-it is supported by frameworks such as Apache Slider. The registry DNS service currently
+it is supported by the YARN service framework. The registry DNS service currently
 leverages the last element of the ZK path entry for the application as an
 application name. These application names have to be unique for a given user.
 
@@ -153,6 +153,7 @@ The Registry DNS server reads its configuration properties from the yarn-site.xm
 
 | Name | Description |
 | ------------ | ------------- |
+|hadoop.registry.zk.quorum| A comma separated list of hostname:port pairs defining the zookeeper
quorum for the [YARN registry](../registry/registry-configuration.md). |
 | hadoop.registry.dns.enabled | The DNS functionality is enabled for the cluster. Default
is false. |
 | hadoop.registry.dns.domain-name  | The domain name for Hadoop cluster associated records.
 |
 | hadoop.registry.dns.bind-address | Address associated with the network interface to which
the DNS listener should bind.  |
@@ -163,4 +164,37 @@ The Registry DNS server reads its configuration properties from the yarn-site.xm
 | hadoop.registry.dns-ttl | The default TTL value to associate with DNS records. The default
value is set to 1 (a value of 0 has undefined behavior). A typical value should be approximate
to the time it takes YARN to restart a failed container.  |
 | hadoop.registry.dns.zone-subnet  | An indicator of the IP range associated with the cluster
containers. The setting is utilized for the generation of the reverse zone name.  |
 | hadoop.registry.dns.zone-mask | The network mask associated with the zone IP range.  If
specified, it is utilized to ascertain the IP range possible and come up with an appropriate
reverse zone name. |
-| hadoop.registry.dns.zones-dir | A directory containing zone configuration files to read
during zone initialization.  This directory can contain zone master files named *zone-name.zone*.
 See [here](http://www.zytrax.com/books/dns/ch6/mydomain.html) for zone master file documentation.|
\ No newline at end of file
+| hadoop.registry.dns.zones-dir | A directory containing zone configuration files to read
during zone initialization.  This directory can contain zone master files named *zone-name.zone*.
 See [here](http://www.zytrax.com/books/dns/ch6/mydomain.html) for zone master file documentation.|
+### Sample configurations
+```
+ <property>
+    <description>The domain name for Hadoop cluster associated records.</description>
+    <name>hadoop.registry.dns.domain-name</name>
+    <value>ycluster</value>
+  </property>
+
+  <property>
+    <description>The port number for the DNS listener. The default port is 5353.
+    If the standard privileged port 53 is used, make sure start the DNS with jsvc support.</description>
+    <name>hadoop.registry.dns.bind-port</name>
+    <value>5353</value>
+  </property>
+
+  <property>
+    <description>The DNS functionality is enabled for the cluster. Default is false.</description>
+    <name>hadoop.registry.dns.enabled</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <description>Address associated with the network interface to which the DNS listener
should bind.</description>
+    <name>hadoop.registry.dns.bind-address</name>
+    <value>localhost</value>
+  </property>
+
+  <property>
+    <description>A comma separated list of hostname:port pairs defining the zookeeper
quorum for the YARN registry</description>
+    <name>hadoop.registry.zk.quorum</name>
+    <value>localhost:2181</value>
+  </property>
+  ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44ae7fca/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/ServiceDiscovery.md
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/ServiceDiscovery.md
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/ServiceDiscovery.md
index a5dd0d2..ed56fa3 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/ServiceDiscovery.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/ServiceDiscovery.md
@@ -73,6 +73,7 @@ assigned `0` since it is the first and only instance for the `hbasemaster`
compo
 Below is the set of configurations in `yarn-site.xml` required for enabling Registry DNS.
A full list of properties can be found in the Configuration
 section of [Registry DNS](RegistryDNS.md).
 
+
 ```
   <property>
     <description>The domain name for Hadoop cluster associated records.</description>
@@ -84,7 +85,7 @@ section of [Registry DNS](RegistryDNS.md).
     <description>The port number for the DNS listener. The default port is 5353.
     If the standard privileged port 53 is used, make sure start the DNS with jsvc support.</description>
     <name>hadoop.registry.dns.bind-port</name>
-    <value>53</value>
+    <value>5353</value>
   </property>
 
   <property>
@@ -94,6 +95,20 @@ section of [Registry DNS](RegistryDNS.md).
   </property>
 
   <property>
+    <description>Address associated with the network interface to which the DNS listener
should bind.</description>
+    <name>hadoop.registry.dns.bind-address</name>
+    <value>localhost</value>
+  </property>
+
+  <property>
+    <description> A comma separated list of hostname:port pairs defining the zookeeper
quorum for the YARN registry</description>
+    <name>hadoop.registry.zk.quorum</name>
+    <value>localhost:2181</value>
+  </property>
+```
+To configure Registry DNS to serve reverse lookup for `172.17.0.0/24`
+```
+  <property>
     <description>The network mask associated with the zone IP range. If specified,
it is utilized to ascertain the
     IP range possible and come up with an appropriate reverse zone name.</description>
     <name>hadoop.registry.dns.zone-mask</name>
@@ -104,11 +119,9 @@ section of [Registry DNS](RegistryDNS.md).
     <description>An indicator of the IP range associated with the cluster containers.
The setting is utilized for the
      generation of the reverse zone name.</description>
     <name>hadoop.registry.dns.zone-subnet</name>
-    <value>172.17.0</value>
+    <value>172.17.0.0</value>
   </property>
-
 ```
-
 ## Start the DNS Server
 By default, the DNS server runs on non-privileged port `5353`. Start the server
 with:


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org


Mime
View raw message