Просмотр исходного кода

AMBARI-7075. Install hadoop failed for ubuntu with mysql db (aonishuk)

Andrew Onishuk 10 лет назад
Родитель
Сommit
248bd72a37

+ 2 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/package/scripts/hive_client.py

@@ -24,7 +24,8 @@ from hive import hive
 
 class HiveClient(Script):
   def install(self, env):
-    self.install_packages(env)
+    import params
+    self.install_packages(env, exclude_packages=params.hive_exclude_packages)
     self.configure(env)
 
   def configure(self, env):

+ 2 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/package/scripts/hive_metastore.py

@@ -28,7 +28,8 @@ from mysql_service import mysql_service
 class HiveMetastore(Script):
 
   def install(self, env):
-    self.install_packages(env)
+    import params
+    self.install_packages(env, exclude_packages=params.hive_exclude_packages)
 
   def configure(self, env):
     import params

+ 2 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/package/scripts/hive_server.py

@@ -26,7 +26,8 @@ from install_jars import install_tez_jars
 class HiveServer(Script):
 
   def install(self, env):
-    self.install_packages(env)
+    import params
+    self.install_packages(env, exclude_packages=params.hive_exclude_packages)
 
   def configure(self, env):
     import params

+ 3 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/package/scripts/mysql_server.py

@@ -26,7 +26,9 @@ from mysql_service import mysql_service
 class MysqlServer(Script):
 
   def install(self, env):
-    self.install_packages(env)
+    import params
+    
+    self.install_packages(env, exclude_packages=params.hive_exclude_packages)
     self.configure(env)
 
   def configure(self, env):

+ 10 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/package/scripts/params.py

@@ -20,6 +20,7 @@ limitations under the License.
 
 from resource_management import *
 import status_params
+import os
 
 # server configurations
 config = Script.get_config()
@@ -186,6 +187,15 @@ else:
 # Hive security
 hive_authorization_enabled = config['configurations']['hive-site']['hive.security.authorization.enabled']
 
+mysql_jdbc_driver_jar = "/usr/share/java/mysql-connector-java.jar"
+
+# There are other packages that contain /usr/share/java/mysql-connector-java.jar (like libmysql-java),
+# trying to install mysql-connector-java upon them can cause packages to conflict.
+if os.path.exists(mysql_jdbc_driver_jar):
+  hive_exclude_packages = ['mysql-connector-java']
+else:  
+  hive_exclude_packages = []
+
 import functools
 #create partial functions with common arguments for every HdfsDirectory call
 #to create hdfs directory we need to call params.HdfsDirectory in code