You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluo.apache.org by bi...@apache.org on 2020/01/30 21:02:56 UTC

[fluo-muchos] branch master updated: Add support for ZooKeeper 3.5 (#316)

This is an automated email from the ASF dual-hosted git repository.

billie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/fluo-muchos.git


The following commit(s) were added to refs/heads/master by this push:
     new 96e79de  Add support for ZooKeeper 3.5 (#316)
96e79de is described below

commit 96e79dec692d20ab283d6ac529d141056f27db9e
Author: billierinaldi <bi...@gmail.com>
AuthorDate: Thu Jan 30 13:02:46 2020 -0800

    Add support for ZooKeeper 3.5 (#316)
    
    * Add support for ZooKeeper 3.5
    
    * Address review comments
    
    * Validate Accumulo and ZK versions are compatible
---
 ansible/roles/zookeeper/templates/zoo.cfg | 2 ++
 conf/checksums                            | 1 +
 conf/muchos.props.example                 | 2 +-
 lib/muchos/config/base.py                 | 9 +++++++--
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/ansible/roles/zookeeper/templates/zoo.cfg b/ansible/roles/zookeeper/templates/zoo.cfg
index 2eda8f6..b1e3877 100644
--- a/ansible/roles/zookeeper/templates/zoo.cfg
+++ b/ansible/roles/zookeeper/templates/zoo.cfg
@@ -15,6 +15,8 @@ clientPort={{ zookeeper_client_port }}
 # the maximum number of client connections.
 # increase this if you need to handle more clients
 maxClientCnxns=100
+# support zk monitoring (for zk >= 3.5)
+4lw.commands.whitelist=mntr
 {% for host in groups['zookeepers'] %}
 server.{{ loop.index }}={{ host }}:2888:3888
 {% endfor %}
diff --git a/conf/checksums b/conf/checksums
index 292c6e7..626f9f6 100644
--- a/conf/checksums
+++ b/conf/checksums
@@ -28,6 +28,7 @@ spark:2.3.4:0241cbe73d3ad4fec1c655d839facc16e647ff9a3825f51c78d9fb270a753da4
 spark:2.3.3:a5c4a54db5163df25110534f36e13d6ae65758d45d1bc8bfcd7e27304e716a23
 spark:2.3.2:3387107155d62f04ccf6bcaf2e00a69a0de5ae5df875348d93147743c206f0a8
 spark:2.2.2:023b2fea378b3dd0fee2d5d1de6bfaf2d8349aefe7be97a9cbcf03bbacc428d7
+zookeeper:3.5.6:db24700e453f2ad4b6b789d553fe828ccceef3977a7e6b36389580ec92397a7e
 zookeeper:3.4.14:b14f7a0fece8bd34c7fffa46039e563ac5367607c612517aa7bd37306afbd1cd
 zookeeper:3.4.13:7ced798e41d2027784b8fd55c908605ad5bd94a742d5dab2506be8f94770594d
 zookeeper:3.4.12:c686f9319050565b58e642149cb9e4c9cc8c7207aacc2cb70c5c0672849594b9
diff --git a/conf/muchos.props.example b/conf/muchos.props.example
index 41cb5d5..63898be 100644
--- a/conf/muchos.props.example
+++ b/conf/muchos.props.example
@@ -37,7 +37,7 @@ accumulo_instance = muchos
 accumulo_password = secret
 # Software versions (make sure you have a corresponding entry for the checksum in conf/checksums)
 hadoop_version = 3.2.1
-zookeeper_version = 3.4.14
+zookeeper_version = 3.5.6
 spark_version = 2.3.2
 fluo_version = 1.2.0
 fluo_yarn_version = 1.0.0
diff --git a/lib/muchos/config/base.py b/lib/muchos/config/base.py
index b7b6d6f..af7da89 100644
--- a/lib/muchos/config/base.py
+++ b/lib/muchos/config/base.py
@@ -73,8 +73,9 @@ _HOST_VAR_DEFAULTS = {
   'worker_data_dirs': None,
   'zookeeper_connect': "{% for host in groups['zookeepers'] %}{{ host }}:2181{% if not loop.last %},{% endif %}{% endfor %}",
   'zookeeper_client_port': '"2181"',
-  'zookeeper_home': '"{{ install_dir }}/zookeeper-{{ zookeeper_version }}"',
-  'zookeeper_tarball': 'zookeeper-{{ zookeeper_version }}.tar.gz',
+  'zookeeper_basename': "{% if zookeeper_version.startswith('3.5') %}apache-zookeeper-{{ zookeeper_version }}-bin{% else %}zookeeper-{{ zookeeper_version }}{% endif %}",
+  'zookeeper_home': "{{ install_dir }}/{{ zookeeper_basename }}",
+  'zookeeper_tarball': "{{ zookeeper_basename }}.tar.gz",
   'zookeeper_version': None
 }
 
@@ -182,6 +183,10 @@ class BaseConfig(ConfigParser, metaclass=ABCMeta):
             if self.java_product_version() >= 11 and StrictVersion(self.version('accumulo').replace('-SNAPSHOT','')) <= StrictVersion("1.9.3"):
                 exit("ERROR - Java 11 is not supported with Accumulo version '{0}'".format(self.version('accumulo')))
 
+            # validate and fail if we are using ZooKeeper 3.5.5 or greater and Accumulo 1.9.x or less
+            if StrictVersion(self.version('zookeeper')) >= StrictVersion("3.5.5") and StrictVersion(self.version('accumulo').replace('-SNAPSHOT','')) < StrictVersion("1.10.0"):
+                exit("ERROR - ZooKeeper version '{0}' is not supported with Accumulo version '{1}'".format(self.version('zookeeper'), self.version('accumulo')))
+
     @abstractmethod
     def verify_launch(self):
         raise NotImplementedError()