瀏覽代碼

AMBARI-18265. Make sure AMS embedded works after AMS HA changes. (avijayan)

Aravindan Vijayan 9 年之前
父節點
當前提交
2b86690da4

+ 12 - 6
ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/HBaseTimelineMetricStore.java

@@ -387,15 +387,21 @@ public class HBaseTimelineMetricStore extends AbstractService implements Timelin
 
   @Override
   public List<String> getLiveInstances() {
-    List<String> instances = haController.getLiveInstanceHostNames();
-    if (instances == null || instances.isEmpty()) {
-      try {
-        // Always return current host as live (embedded operation mode)
-        instances = Collections.singletonList(configuration.getInstanceHostnameFromEnv());
+
+    List<String> instances = null;
+    try {
+        if (haController == null) {
+          // Always return current host as live (embedded operation mode)
+          return Collections.singletonList(configuration.getInstanceHostnameFromEnv());
+        }
+        instances = haController.getLiveInstanceHostNames();
+        if (instances == null || instances.isEmpty()) {
+          // fallback
+          instances = Collections.singletonList(configuration.getInstanceHostnameFromEnv());
+        }
       } catch (UnknownHostException e) {
         LOG.debug("Exception on getting hostname from env.", e);
       }
-    }
     return instances;
   }