You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2014/12/19 23:44:19 UTC

ambari git commit: AMBARI-8808. Resolve potential port conflicts with Hadoop daemons. ATS port fix. (swagle)

Repository: ambari
Updated Branches:
  refs/heads/trunk 43abcf0d7 -> fa8c51e41


AMBARI-8808. Resolve potential port conflicts with Hadoop daemons. ATS port fix. (swagle)


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

Branch: refs/heads/trunk
Commit: fa8c51e41990664db274643f8113c490dd5c17b4
Parents: 43abcf0
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Fri Dec 19 14:44:07 2014 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Fri Dec 19 14:44:07 2014 -0800

----------------------------------------------------------------------
 .../ApplicationHistoryClientService.java              | 14 +++++++++++---
 .../ApplicationHistoryServer.java                     |  5 ++---
 .../metrics/timeline/TimelineMetricConfiguration.java | 11 +++++++++++
 .../controller/internal/AbstractProviderModule.java   | 14 +++++---------
 .../AMS/0.1.0/configuration/ams-site.xml              |  7 +++++++
 .../AMS/0.1.0/package/templates/metric_monitor.ini.j2 |  2 +-
 6 files changed, 37 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/fa8c51e4/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java
index e15198b..8a37a57 100644
--- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java
+++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryClientService.java
@@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.classification.InterfaceAudience.Private;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.ipc.Server;
+import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.service.AbstractService;
 import org.apache.hadoop.yarn.api.ApplicationHistoryProtocol;
 import org.apache.hadoop.yarn.api.protocolrecords.CancelDelegationTokenRequest;
@@ -57,6 +58,7 @@ import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException;
 import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException;
 import org.apache.hadoop.yarn.exceptions.YarnException;
 import org.apache.hadoop.yarn.ipc.YarnRPC;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.TimelineMetricConfiguration;
 
 public class ApplicationHistoryClientService extends AbstractService {
   private static final Log LOG = LogFactory
@@ -65,6 +67,7 @@ public class ApplicationHistoryClientService extends AbstractService {
   private ApplicationHistoryProtocol protocolHandler;
   private Server server;
   private InetSocketAddress bindAddress;
+  private TimelineMetricConfiguration metricConfiguration;
 
   public ApplicationHistoryClientService(ApplicationHistoryManager history) {
     super("ApplicationHistoryClientService");
@@ -72,13 +75,18 @@ public class ApplicationHistoryClientService extends AbstractService {
     this.protocolHandler = new ApplicationHSClientProtocolHandler();
   }
 
+  public ApplicationHistoryClientService(ApplicationHistoryManager history,
+                           TimelineMetricConfiguration metricConfiguration) {
+    this(history);
+    this.metricConfiguration = metricConfiguration;
+  }
+
   protected void serviceStart() throws Exception {
     Configuration conf = getConfig();
     YarnRPC rpc = YarnRPC.create(conf);
     InetSocketAddress address =
-        conf.getSocketAddr(YarnConfiguration.TIMELINE_SERVICE_ADDRESS,
-          YarnConfiguration.DEFAULT_TIMELINE_SERVICE_ADDRESS,
-          YarnConfiguration.DEFAULT_TIMELINE_SERVICE_PORT);
+      NetUtils.createSocketAddr(metricConfiguration.getTimelineServiceRpcAddress(),
+        YarnConfiguration.DEFAULT_TIMELINE_SERVICE_PORT);
 
     server =
         rpc.getServer(ApplicationHistoryProtocol.class, protocolHandler,

http://git-wip-us.apache.org/repos/asf/ambari/blob/fa8c51e4/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java
index 131636d..3dd4d8d 100644
--- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java
+++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryServer.java
@@ -109,10 +109,9 @@ public class ApplicationHistoryServer extends CompositeService {
     return this.ahsClientService;
   }
 
-  protected ApplicationHistoryClientService
-      createApplicationHistoryClientService(
+  protected ApplicationHistoryClientService createApplicationHistoryClientService(
           ApplicationHistoryManager historyManager) {
-    return new ApplicationHistoryClientService(historyManager);
+    return new ApplicationHistoryClientService(historyManager, metricConfiguration);
   }
 
   protected ApplicationHistoryManager createApplicationHistory() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/fa8c51e4/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
----------------------------------------------------------------------
diff --git a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
index 0e9abf7..e1275c8 100644
--- a/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
+++ b/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/TimelineMetricConfiguration.java
@@ -125,6 +125,9 @@ public class TimelineMetricConfiguration {
   public static final String WEBAPP_HTTP_ADDRESS =
     "timeline.metrics.service.webapp.address";
 
+  public static final String TIMELINE_SERVICE_RPC_ADDRESS =
+    "timeline.metrics.service.rpc.address";
+
   private Configuration hbaseConf;
   private Configuration metricsConf;
   private volatile boolean isInitialized = false;
@@ -177,4 +180,12 @@ public class TimelineMetricConfiguration {
     }
     return defaultHttpAddress;
   }
+
+  public String getTimelineServiceRpcAddress() {
+    String defaultHttpAddress = "0.0.0.0:60200";
+    if (metricsConf != null) {
+      return metricsConf.get(TIMELINE_SERVICE_RPC_ADDRESS, defaultHttpAddress);
+    }
+    return defaultHttpAddress;
+  }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/fa8c51e4/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
index dde24c2..bf68986 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
@@ -98,7 +98,7 @@ public abstract class AbstractProviderModule implements ProviderModule,
   private static final Map<String, Map<String, String[]>> jmxDesiredProperties = new HashMap<String, Map<String, String[]>>();
   private volatile Map<String, String> clusterCoreSiteConfigVersionMap = new HashMap<String, String>();
   private volatile Map<String, String> clusterJmxProtocolMap = new HashMap<String, String>();
-  private volatile String clusterMetricServerPort = "80";
+  private volatile String clusterMetricServerPort = null;
 
   static {
     serviceConfigTypes.put(Service.Type.HDFS, "hdfs-site");
@@ -335,7 +335,6 @@ public abstract class AbstractProviderModule implements ProviderModule,
     if (service.equals(GANGLIA)) {
       return "80"; // Not called by the provider
     } else if (service.equals(TIMELINE_METRICS)) {
-      String collectorPort = null;
       try {
         String configType = serviceConfigTypes.get(Service.Type.AMS);
         String currentConfigVersion = getDesiredConfigVersion(clusterName, configType);
@@ -347,10 +346,12 @@ public abstract class AbstractProviderModule implements ProviderModule,
           Map<String, String> configProperties = getDesiredConfigMap
             (clusterName, currentConfigVersion, configType,
               Collections.singletonMap("METRIC_COLLECTOR",
-                new String[]{"timeline.metrics.service.webapp.address"}));
+                new String[] { "timeline.metrics.service.webapp.address" }));
 
           if (!configProperties.isEmpty()) {
-            collectorPort = getPortString(configProperties.get("METRIC_COLLECTOR"));
+            clusterMetricServerPort = getPortString(configProperties.get("METRIC_COLLECTOR"));
+          } else {
+            clusterMetricServerPort = "8188";
           }
         }
 
@@ -359,11 +360,6 @@ public abstract class AbstractProviderModule implements ProviderModule,
       } catch (UnsupportedPropertyException e) {
         LOG.warn("Failed to retrieve collector port.", e);
       }
-      if (collectorPort == null) {
-        return "8188";
-      } else {
-        clusterMetricServerPort = collectorPort;
-      }
     }
     return clusterMetricServerPort;
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/fa8c51e4/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-site.xml b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-site.xml
index 84b075b..2f8281a 100644
--- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-site.xml
+++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-site.xml
@@ -39,6 +39,13 @@
     </description>
   </property>
   <property>
+    <name>timeline.metrics.service.rpc.address</name>
+    <value>0.0.0.0:60200</value>
+    <description>
+      The address of the metrics service rpc listeners.
+    </description>
+  </property>
+  <property>
     <name>timeline.metrics.aggregator.checkpoint.dir</name>
     <value>/tmp</value>
     <description>

http://git-wip-us.apache.org/repos/asf/ambari/blob/fa8c51e4/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/templates/metric_monitor.ini.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/templates/metric_monitor.ini.j2 b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/templates/metric_monitor.ini.j2
index 5e672fc..2ee21d4 100644
--- a/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/templates/metric_monitor.ini.j2
+++ b/ambari-server/src/main/resources/common-services/AMS/0.1.0/package/templates/metric_monitor.ini.j2
@@ -18,7 +18,7 @@
 
 [default]
 debug_level = INFO
-metrics_server = {{ams_collector_host_single}}:{{ams_collector_port}}
+metrics_server = {{ams_collector_host_single}}:{{metric_collector_port}}
 enable_time_threshold = false
 enable_value_threshold = false