Przeglądaj źródła

AMBARI-15742. Recommendations return 500 error for HIVE with (alexantonenko)

Alex Antonenko 9 lat temu
rodzic
commit
aceeacef67

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.1/services/stack_advisor.py

@@ -160,6 +160,7 @@ class HDP21StackAdvisor(HDP206StackAdvisor):
       'NEW MYSQL DATABASE': 'com.mysql.jdbc.Driver',
       'NEW MYSQL DATABASE': 'com.mysql.jdbc.Driver',
       'NEW DERBY DATABASE': 'org.apache.derby.jdbc.EmbeddedDriver',
       'NEW DERBY DATABASE': 'org.apache.derby.jdbc.EmbeddedDriver',
       'EXISTING MYSQL DATABASE': 'com.mysql.jdbc.Driver',
       'EXISTING MYSQL DATABASE': 'com.mysql.jdbc.Driver',
+      'EXISTING MYSQL / MARIADB DATABASE': 'com.mysql.jdbc.Driver',
       'EXISTING POSTGRESQL DATABASE': 'org.postgresql.Driver',
       'EXISTING POSTGRESQL DATABASE': 'org.postgresql.Driver',
       'EXISTING ORACLE DATABASE': 'oracle.jdbc.driver.OracleDriver',
       'EXISTING ORACLE DATABASE': 'oracle.jdbc.driver.OracleDriver',
       'EXISTING SQL ANYWHERE DATABASE': 'sap.jdbc4.sqlanywhere.IDriver'
       'EXISTING SQL ANYWHERE DATABASE': 'sap.jdbc4.sqlanywhere.IDriver'
@@ -171,6 +172,7 @@ class HDP21StackAdvisor(HDP206StackAdvisor):
       'NEW MYSQL DATABASE': 'jdbc:mysql://{0}/{1}?createDatabaseIfNotExist=true',
       'NEW MYSQL DATABASE': 'jdbc:mysql://{0}/{1}?createDatabaseIfNotExist=true',
       'NEW DERBY DATABASE': 'jdbc:derby:${{oozie.data.dir}}/${{oozie.db.schema.name}}-db;create=true',
       'NEW DERBY DATABASE': 'jdbc:derby:${{oozie.data.dir}}/${{oozie.db.schema.name}}-db;create=true',
       'EXISTING MYSQL DATABASE': 'jdbc:mysql://{0}/{1}',
       'EXISTING MYSQL DATABASE': 'jdbc:mysql://{0}/{1}',
+      'EXISTING MYSQL / MARIADB DATABASE': 'jdbc:mysql://{0}/{1}',
       'EXISTING POSTGRESQL DATABASE': 'jdbc:postgresql://{0}:5432/{1}',
       'EXISTING POSTGRESQL DATABASE': 'jdbc:postgresql://{0}:5432/{1}',
       'EXISTING ORACLE DATABASE': 'jdbc:oracle:thin:@//{0}:1521/{1}',
       'EXISTING ORACLE DATABASE': 'jdbc:oracle:thin:@//{0}:1521/{1}',
       'EXISTING SQL ANYWHERE DATABASE': 'jdbc:sqlanywhere:host={0};database={1}'
       'EXISTING SQL ANYWHERE DATABASE': 'jdbc:sqlanywhere:host={0};database={1}'
@@ -181,6 +183,7 @@ class HDP21StackAdvisor(HDP206StackAdvisor):
     driverDict = {
     driverDict = {
       'NEW MYSQL DATABASE': 'mysql',
       'NEW MYSQL DATABASE': 'mysql',
       'NEW DERBY DATABASE': 'derby',
       'NEW DERBY DATABASE': 'derby',
+      'EXISTING MYSQL / MARIADB DATABASE': 'mysql',
       'EXISTING MYSQL DATABASE': 'mysql',
       'EXISTING MYSQL DATABASE': 'mysql',
       'EXISTING POSTGRESQL DATABASE': 'postgres',
       'EXISTING POSTGRESQL DATABASE': 'postgres',
       'EXISTING ORACLE DATABASE': 'oracle',
       'EXISTING ORACLE DATABASE': 'oracle',

+ 6 - 0
ambari-server/src/test/python/stacks/2.1/common/test_stack_advisor.py

@@ -255,6 +255,12 @@ class TestHDP21StackAdvisor(TestCase):
     self.assertEquals(configurations['hive-site']['properties']['javax.jdo.option.ConnectionURL'], "jdbc:sqlanywhere:host=example.com;database=hive_name")
     self.assertEquals(configurations['hive-site']['properties']['javax.jdo.option.ConnectionURL'], "jdbc:sqlanywhere:host=example.com;database=hive_name")
     self.assertEquals(configurations['hive-site']['properties']['javax.jdo.option.ConnectionDriverName'], "sap.jdbc4.sqlanywhere.IDriver")
     self.assertEquals(configurations['hive-site']['properties']['javax.jdo.option.ConnectionDriverName'], "sap.jdbc4.sqlanywhere.IDriver")
 
 
+    # existing Mysql / MariaDB
+    services['configurations']['hive-env']['properties']['hive_database'] = 'Existing MySQL / MariaDB Database'
+    self.stackAdvisor.recommendHiveConfigurations(configurations, clusterData, services, hosts)
+    self.assertEquals(configurations['hive-site']['properties']['javax.jdo.option.ConnectionURL'], "jdbc:mysql://example.com/hive_name")
+    self.assertEquals(configurations['hive-site']['properties']['javax.jdo.option.ConnectionDriverName'], "com.mysql.jdbc.Driver")
+
   def test_recommendHiveConfigurations_containersRamIsLess(self):
   def test_recommendHiveConfigurations_containersRamIsLess(self):
     configurations = {}
     configurations = {}
     clusterData = {
     clusterData = {