Browse Source

AMBARI-9654. Hive and Oozie could not start after upgrade from 1.5.1 to 2.0.0 (aonishuk)

Andrew Onishuk 10 years ago
parent
commit
edfd9ab1fb

+ 7 - 2
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java

@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Collections;
 
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.controller.AmbariManagementController;
@@ -144,10 +145,10 @@ public class UpgradeCatalog200 extends AbstractUpgradeCatalog {
   private void executeAlertDDLUpdates() throws AmbariException, SQLException {
     // add ignore_host column to alert_definition
     dbAccessor.addColumn(ALERT_DEFINITION_TABLE, new DBColumnInfo(
-        "ignore_host", Short.class, 1, 0, false));
+            "ignore_host", Short.class, 1, 0, false));
 
     dbAccessor.addColumn(ALERT_DEFINITION_TABLE, new DBColumnInfo(
-        "description", char[].class, 32672, null, true));
+            "description", char[].class, 32672, null, true));
 
     // update alert target
     dbAccessor.addColumn(ALERT_TARGET_TABLE, new DBColumnInfo("is_global",
@@ -304,6 +305,7 @@ public class UpgradeCatalog200 extends AbstractUpgradeCatalog {
     addNewConfigurationsFromXml();
     updateHiveDatabaseType();
     setSecurityType();
+    addMissingConfigs();
   }
 
   protected void updateHiveDatabaseType() throws AmbariException {
@@ -454,4 +456,7 @@ public class UpgradeCatalog200 extends AbstractUpgradeCatalog {
       }
     }
   }
+  protected void addMissingConfigs() throws AmbariException {
+    updateConfigurationProperties("hive-site", Collections.singletonMap("hive.server2.transport.mode", "binary"), false, false);
+  }
 }

+ 9 - 0
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java

@@ -39,7 +39,9 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import javax.persistence.EntityManager;
 
@@ -326,12 +328,15 @@ public class UpgradeCatalog200Test {
     Method addNewConfigurationsFromXml = AbstractUpgradeCatalog.class.getDeclaredMethod
         ("addNewConfigurationsFromXml");
     Method setSecurityType = UpgradeCatalog200.class.getDeclaredMethod("setSecurityType");
+    Method updateConfigurationProperties = AbstractUpgradeCatalog.class.getDeclaredMethod
+            ("updateConfigurationProperties", String.class, Map.class, boolean.class, boolean.class);
 
     UpgradeCatalog200 upgradeCatalog = createMockBuilder(UpgradeCatalog200.class)
         .addMockedMethod(removeNagiosService)
         .addMockedMethod(updateHiveDatabaseType)
         .addMockedMethod(addNewConfigurationsFromXml)
         .addMockedMethod(setSecurityType)
+        .addMockedMethod(updateConfigurationProperties)
         .createMock();
 
     upgradeCatalog.removeNagiosService();
@@ -344,6 +349,10 @@ public class UpgradeCatalog200Test {
     upgradeCatalog.setSecurityType();
     expectLastCall().once();
 
+    upgradeCatalog.updateConfigurationProperties("hive-site",
+            Collections.singletonMap("hive.server2.transport.mode", "binary"), false, false);
+    expectLastCall();
+
     replay(upgradeCatalog);
 
     upgradeCatalog.executeDMLUpdates();