Kaynağa Gözat

AMBARI-17779 : Fix enable/disable normalizer issue in AMS (avijayan)

Aravindan Vijayan 9 yıl önce
ebeveyn
işleme
20f1adbd9f

+ 6 - 1
ambari-metrics/ambari-metrics-assembly/pom.xml

@@ -240,6 +240,9 @@
                       <sources>
                         <source>
                           <location>${collector.dir}/target/lib</location>
+                          <excludes>
+                            <exclude>*tests.jar</exclude>
+                          </excludes>
                         </source>
                         <source>
                           <location>
@@ -257,6 +260,7 @@
                           <excludes>
                             <exclude>bin/**</exclude>
                             <exclude>bin/*</exclude>
+                            <exclude>lib/*tests.jar</exclude>
                           </excludes>
                         </source>
                       </sources>
@@ -770,6 +774,7 @@
                 <data>
                   <src>${collector.dir}/target/lib</src>
                   <type>directory</type>
+                  <excludes>*tests.jar</excludes>
                   <mapper>
                     <type>perm</type>
                     <filemode>644</filemode>
@@ -779,7 +784,7 @@
                 <data>
                   <src>${collector.dir}/target/embedded/${hbase.folder}</src>
                   <type>directory</type>
-                  <excludes>bin/**,bin/*</excludes>
+                  <excludes>bin/**,bin/*,lib/*tests.jar</excludes>
                   <mapper>
                     <type>perm</type>
                     <prefix>/usr/lib/ams-hbase</prefix>

+ 4 - 6
ambari-metrics/ambari-metrics-timelineservice/pom.xml

@@ -124,6 +124,9 @@
               <sources>
                 <source>
                   <location>target/lib</location>
+                  <excludes>
+                  <exclude>*tests.jar</exclude>
+                  </excludes>
                 </source>
                 <source>
                   <location>${project.build.directory}/${project.artifactId}-${project.version}.jar</location>
@@ -139,6 +142,7 @@
                   <excludes>
                     <exclude>bin/**</exclude>
                     <exclude>bin/*</exclude>
+                    <exclude>lib/*tests.jar</exclude>
                   </excludes>
                 </source>
               </sources>
@@ -249,12 +253,6 @@
   </build>
 
   <dependencies>
-    <dependency>
-      <groupId>org.apache.phoenix</groupId>
-      <artifactId>phoenix-server</artifactId>
-      <version>${phoenix.version}</version>
-    </dependency>
-
     <dependency>
       <groupId>org.apache.phoenix</groupId>
       <artifactId>phoenix-core</artifactId>

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

@@ -210,7 +210,8 @@ public class HBaseTimelineMetricStore extends AbstractService implements Timelin
       } else {
         LOG.info("Invalid Input for TopN query. Ignoring TopN Request.");
       }
-    } else if (hostnames != null && hostnames.size() > defaultTopNHostsLimit) {
+    } else if (startTime != null && hostnames != null && hostnames.size() > defaultTopNHostsLimit) {
+      // if (timeseries query AND hostnames passed AND size(hostnames) > limit)
       LOG.info("Requesting data for more than " + defaultTopNHostsLimit +  " Hosts. " +
         "Defaulting to Top " + defaultTopNHostsLimit);
       conditionBuilder.topN(defaultTopNHostsLimit);

+ 4 - 4
ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java

@@ -488,7 +488,7 @@ public class PhoenixHBaseAccessor {
   }
 
   protected void initPoliciesAndTTL() {
-    boolean enableNormalizer = hbaseConf.getBoolean("hbase.normalizer.enabled", true);
+    boolean enableNormalizer = hbaseConf.getBoolean("hbase.normalizer.enabled", false);
     boolean enableFifoCompaction = metricsConf.getBoolean("timeline.metrics.hbase.fifo.compaction.enabled", true);
 
     HBaseAdmin hBaseAdmin = null;
@@ -504,9 +504,9 @@ public class PhoenixHBaseAccessor {
           boolean modifyTable = false;
           HTableDescriptor tableDescriptor = hBaseAdmin.getTableDescriptor(tableName.getBytes());
 
-          if (enableNormalizer && !tableDescriptor.isNormalizationEnabled()) {
-            tableDescriptor.setNormalizationEnabled(true);
-            LOG.info("Enabling normalizer for " + tableName);
+          if (enableNormalizer ^ tableDescriptor.isNormalizationEnabled()) {
+            tableDescriptor.setNormalizationEnabled(enableNormalizer);
+            LOG.info("Normalizer set to " + enableNormalizer + " for " + tableName);
             modifyTable = true;
           }
 

+ 4 - 4
ambari-metrics/ambari-metrics-timelineservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/ITPhoenixHBaseAccessor.java

@@ -325,8 +325,8 @@ public class ITPhoenixHBaseAccessor extends AbstractMiniHBaseClusterTest {
     // Verify policies are unset
     for (String tableName : PHOENIX_TABLES) {
       HTableDescriptor tableDescriptor = hBaseAdmin.getTableDescriptor(tableName.getBytes());
-
-      Assert.assertFalse("Normalizer disabled by default.", tableDescriptor.isNormalizationEnabled());
+      tableDescriptor.setNormalizationEnabled(true);
+      Assert.assertTrue("Normalizer enabled.", tableDescriptor.isNormalizationEnabled());
       Assert.assertNull("Default compaction policy is null.",
         tableDescriptor.getConfigurationValue(HSTORE_COMPACTION_CLASS_KEY));
 
@@ -364,7 +364,7 @@ public class ITPhoenixHBaseAccessor extends AbstractMiniHBaseClusterTest {
         LOG.debug("Table: " + tableName + ", normalizerEnabled = " + normalizerEnabled);
         LOG.debug("Table: " + tableName + ", compactionPolicy = " + compactionPolicy);
         // Best effort for 20 seconds
-        if (!normalizerEnabled || compactionPolicy == null) {
+        if (normalizerEnabled || compactionPolicy == null) {
           Thread.sleep(2000l);
         }
         if (tableName.equals(METRICS_RECORD_TABLE_NAME)) {
@@ -375,7 +375,7 @@ public class ITPhoenixHBaseAccessor extends AbstractMiniHBaseClusterTest {
       }
     }
 
-    Assert.assertTrue("Normalizer enabled.", normalizerEnabled);
+    Assert.assertFalse("Normalizer disabled.", normalizerEnabled);
     Assert.assertTrue("Durability Set.", tableDurabilitySet);
     Assert.assertEquals("FIFO compaction policy is set.", FIFO_COMPACTION_POLICY_CLASS, compactionPolicy);
     Assert.assertEquals("Precision TTL value not changed.", String.valueOf(2 * 86400), precisionTtl);