فهرست منبع

AMBARI-8841 - Validate Ambari on Win with hdp-2.2.msi

Artem Baranchuk 10 سال پیش
والد
کامیت
8567905176

+ 18 - 3
ambari-common/src/main/python/resource_management/libraries/functions/install_hdp_msi.py

@@ -28,6 +28,7 @@ from resource_management.core.logger import Logger
 from resource_management.core.exceptions import Fail
 from resource_management.libraries.functions.reload_windows_env import reload_windows_env
 from resource_management.libraries.functions.windows_service_utils import check_windows_service_exists
+from resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
 import socket
 import os
 import glob
@@ -40,12 +41,20 @@ hdp_log_dir = "c:\\hadoop\\logs"
 hdp_data_dir = "c:\\hadoopDefaultData"
 local_host = socket.getfqdn()
 db_flavor = "DERBY"
+hdp_22 = """#Namenode Data directory
+HDFS_NAMENODE_DATA_DIR={hdp_data_dir}\\hdpdatann
+
+#Datanode Data directory
+HDFS_DATANODE_DATA_DIR={hdp_data_dir}\\hdpdatadn
+"""
 cluster_properties = """#Log directory
 HDP_LOG_DIR={hdp_log_dir}
 
 #Data directory
 HDP_DATA_DIR={hdp_data_dir}
 
+{hdp_22_specific_props}
+
 #hosts
 NAMENODE_HOST={local_host}
 SECONDARY_NAMENODE_HOST={local_host}
@@ -82,7 +91,7 @@ OOZIE_DB_PASSWORD=oozie
 
 INSTALL_MSI_CMD = 'cmd /C start /wait msiexec /qn /i  {hdp_msi_path} /lv {hdp_log_path} MSIUSEREALADMINDETECTION=1 ' \
                   'HDP_LAYOUT={hdp_layout_path} DESTROY_DATA=yes HDP_USER_PASSWORD={hadoop_password_arg} HDP=yes ' \
-                  'KNOX=yes KNOX_MASTER_SECRET="AmbariHDP2Windows" FALCON=yes STORM=yes HBase=yes STORM=yes FLUME=yes'
+                  'KNOX=yes KNOX_MASTER_SECRET="AmbariHDP2Windows" FALCON=yes STORM=yes HBase=yes STORM=yes FLUME=yes RANGER=no'
 CREATE_SERVICE_SCRIPT = os.path.abspath("sbin\createservice.ps1")
 CREATE_SERVICE_CMD = 'cmd /C powershell -File "{script}" -username hadoop -password "{password}" -servicename ' \
                      '{servicename} -hdpresourcesdir "{resourcedir}" -servicecmdpath "{servicecmd}"'
@@ -140,7 +149,7 @@ def _write_marker():
     open(os.path.join(_working_dir, INSTALL_MARKER_FAILED), "w").close()
 
 
-def install_windows_msi(msi_url, save_dir, save_file, hadoop_password):
+def install_windows_msi(msi_url, save_dir, save_file, hadoop_password, stack_version):
   global _working_dir
   _working_dir = save_dir
   save_dir = os.path.abspath(save_dir)
@@ -157,12 +166,18 @@ def install_windows_msi(msi_url, save_dir, save_file, hadoop_password):
       Logger.info("hdp.msi already installed")
       return
 
+    hdp_stack_version = format_hdp_stack_version(stack_version)
+    hdp_22_specific_props = ''
+    if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+      hdp_22_specific_props = hdp_22
+
     # install msi
     download_file(msi_url, os.path.join(msi_save_dir, save_file))
     File(os.path.join(msi_save_dir, "properties.txt"), content=cluster_properties.format(hdp_log_dir=hdp_log_dir,
                                                                                          hdp_data_dir=hdp_data_dir,
                                                                                          local_host=local_host,
-                                                                                         db_flavor=db_flavor))
+                                                                                         db_flavor=db_flavor,
+                                                                                         hdp_22_specific_props=hdp_22_specific_props))
     hdp_msi_path = os_utils.quote_path(os.path.join(save_dir, "hdp.msi"))
     hdp_log_path = os_utils.quote_path(os.path.join(save_dir, "hdp.log"))
     hdp_layout_path = os_utils.quote_path(os.path.join(save_dir, "properties.txt"))

+ 2 - 1
ambari-common/src/main/python/resource_management/libraries/script/script.py

@@ -223,7 +223,8 @@ class Script(object):
       config = self.get_config()
 
       install_windows_msi(os.path.join(config['hostLevelParams']['jdk_location'], "hdp.msi"),
-                          config["hostLevelParams"]["agentCacheDir"], "hdp.msi", self.get_password("hadoop"))
+                          config["hostLevelParams"]["agentCacheDir"], "hdp.msi", self.get_password("hadoop"),
+                          str(config['hostLevelParams']['stack_version']))
       pass
 
   def fail_with_error(self, message):

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

@@ -24,7 +24,8 @@ import service_mapping
 
 class HiveClient(Script):
   def install(self, env):
-    if not check_windows_service_exists(service_mapping.hive_client_win_service_name):
+    import params
+    if params.hive_home is None:
       self.install_packages(env)
       self.configure(env)