Procházet zdrojové kódy

AMBARI-9032 [WinGA] Zookeeper on Windows fails to start after cluster setup

Adjusted the default ZK dataDir, to account for the internal character escaping.
Florian Barca před 10 roky
rodič
revize
4bc86e37e3

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

@@ -169,7 +169,7 @@ def install_windows_msi(msi_url, save_dir, save_file, hadoop_password, stack_ver
     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
+      hdp_22_specific_props = hdp_22.format(hdp_data_dir=hdp_data_dir)
 
     # install msi
     download_file(msi_url, os.path.join(msi_save_dir, save_file))

+ 1 - 1
ambari-server/src/main/resources/stacks/HDPWIN/2.1/services/ZOOKEEPER/configuration/zoo.cfg.xml

@@ -23,7 +23,7 @@
 <configuration>
   <property>
     <name>dataDir</name>
-    <value>c:\hadoop\zookeeper</value>
+    <value>c:\\\\hadoop\\\\zookeeper</value>
     <description>Data directory for ZooKeeper.</description>
   </property>
 </configuration>

+ 5 - 2
ambari-server/src/main/resources/stacks/HDPWIN/2.1/services/ZOOKEEPER/package/scripts/params.py

@@ -18,6 +18,7 @@ limitations under the License.
 Ambari Agent
 
 """
+from ambari_commons.str_utils import ensure_double_backslashes
 
 from resource_management import *
 
@@ -30,14 +31,16 @@ hdp_root = os.environ["HADOOP_NODE_INSTALL_ROOT"]
 zk_user = "hadoop"
 
 # notused zk_log_dir = config['configurations']['zookeeper-env']['zk_log_dir']
-zk_data_dir = config['configurations']['zoo.cfg']['dataDir']
+zk_data_dir = ensure_double_backslashes(config['configurations']['zoo.cfg']['dataDir'])
 tickTime = config['configurations']['zoo.cfg']['tickTime']
 initLimit = config['configurations']['zoo.cfg']['initLimit']
 syncLimit = config['configurations']['zoo.cfg']['syncLimit']
 clientPort = config['configurations']['zoo.cfg']['clientPort']
 
 if 'zoo.cfg' in config['configurations']:
-  zoo_cfg_properties_map = config['configurations']['zoo.cfg']
+  zoo_cfg_properties_map = config['configurations']['zoo.cfg'].copy()
+  # Fix the data dir - ZK won't start unless the backslashes are doubled
+  zoo_cfg_properties_map['dataDir'] = zk_data_dir
 else:
   zoo_cfg_properties_map = {}
 zoo_cfg_properties_map_length = len(zoo_cfg_properties_map)