Jelajahi Sumber

AMBARI-5583 - Ambari SCOM server doesn't support MR2 HistoryServer in Hadoop2.1

Artem Baranchuk 11 tahun lalu
induk
melakukan
16affea25e

+ 10 - 0
contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java

@@ -225,6 +225,16 @@ public class ClusterDefinition {
     return null;
   }
 
+  public Integer getMinorStackVersion() {
+    if(StringUtils.isNotEmpty(versionId)) {
+      String majorVersion = StringUtils.substring(versionId, 6, 7);
+      if(StringUtils.isNotEmpty(majorVersion)) {
+        return Integer.parseInt(majorVersion);
+      }
+    }
+    return null;
+  }
+
   // ----- ClusterDefinition -------------------------------------------------
 
   /**

+ 5 - 2
contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/scom/SQLProviderModule.java

@@ -62,13 +62,16 @@ public class SQLProviderModule extends DefaultProviderModule implements HostInfo
 
   private void initServiceNames() {
     Integer majorStackVersion = clusterDefinition.getMajorStackVersion();
+    Integer minorStackVersion = clusterDefinition.getMinorStackVersion();
     if(majorStackVersion != null) {
-        serviceNames.put("HIVE_SERVER", majorStackVersion == 1 ? "hiveserver" : "hiveserver2");
+      serviceNames.put("HIVE_SERVER", majorStackVersion == 1 ? "hiveserver" : "hiveserver2");
+      if(minorStackVersion != null) {
+        serviceNames.put("HISTORYSERVER", majorStackVersion > 1 && minorStackVersion > 0 ? "jobhistoryserver" : "historyserver");
+      }
     }
     serviceNames.put("NAMENODE", "namenode");
     serviceNames.put("SECONDARY_NAMENODE", "secondarynamenode");
     serviceNames.put("JOBTRACKER", "jobtracker");
-    serviceNames.put("HISTORYSERVER", "historyserver");
     serviceNames.put("HIVE_METASTORE", "metastore");
     serviceNames.put("HIVE_CLIENT", "hwi");
     serviceNames.put("OOZIE_SERVER", "oozieservice");

+ 12 - 0
contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/msi/ClusterDefinitionTest.java

@@ -351,4 +351,16 @@ public class ClusterDefinitionTest {
 
     verify(mockClusterDefinitionProvider, mockHostInfoProvider, mockStateProvider);
   }
+
+  @Test
+  public void testGetMajorStackVersion() {
+    TestClusterDefinitionProvider testClusterDefinitionProvider = new TestClusterDefinitionProvider("clusterproperties_HDP2.txt", "myCluster", "HDP-2.0.6");
+    ClusterDefinition clusterDefinition = new ClusterDefinition(new TestStateProvider(), testClusterDefinitionProvider, new TestHostInfoProvider());
+
+    Integer majorVersion = clusterDefinition.getMajorStackVersion();
+    Integer minorVersion = clusterDefinition.getMinorStackVersion();
+
+    Assert.assertTrue(2 == majorVersion);
+    Assert.assertTrue(0 == minorVersion);
+  }
 }