You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by of...@apache.org on 2016/08/04 19:47:50 UTC

[02/10] bigtop git commit: BIGTOP-2467 Zookeeper Puppet script does not setup Zookeeper node ids correctly

BIGTOP-2467 Zookeeper Puppet script does not setup Zookeeper node ids correctly

Zookeeper wants its peer ids to be consistent across nodes, but the
current puppet script auto-generates ids for nodes, based on their index
in a list. This breaks Zookeeper quorum.

We fix the issue by requiring that puppet take a list comprising
explicit ids and ip addresses, rather than just a list of ip addresses.

Added backwards compatibilty for old way of doing ensemble.

Should prevent us from breaking existing puppet scripts.

Signed-off-by: Olaf Flebbe <of...@oflebbe.de>


Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo
Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/87e7d01d
Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/87e7d01d
Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/87e7d01d

Branch: refs/heads/BIGTOP-2253
Commit: 87e7d01da2558347f9ea64983506d9d8d944a4b2
Parents: b3526b9
Author: Pete Vander Giessen <pe...@gmail.com>
Authored: Wed Jun 8 16:02:15 2016 -0400
Committer: Olaf Flebbe <of...@oflebbe.de>
Committed: Thu Aug 4 20:41:26 2016 +0200

----------------------------------------------------------------------
 bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml           | 2 +-
 .../puppet/modules/hadoop_zookeeper/manifests/init.pp        | 2 +-
 .../puppet/modules/hadoop_zookeeper/templates/zoo.cfg        | 8 +++++++-
 bigtop-deploy/puppet/modules/hadoop_zookeeper/tests/init.pp  | 2 +-
 4 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bigtop/blob/87e7d01d/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
----------------------------------------------------------------------
diff --git a/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml b/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
index 55f5bcd..60c59b1 100644
--- a/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
+++ b/bigtop-deploy/puppet/hieradata/bigtop/cluster.yaml
@@ -148,7 +148,7 @@ qfs::common::chunkserver_client_port: "22000"
 
 hadoop_zookeeper::server::myid: "0"
 hadoop_zookeeper::server::ensemble:
-  - "%{hiera('bigtop::hadoop_head_node')}:2888:3888"
+  - ["0", "%{hiera('bigtop::hadoop_head_node')}:2888:3888"]
 hadoop_zookeeper::server::kerberos_realm: "%{hiera('kerberos::site::realm')}"
 
 # those are only here because they were present as extlookup keys previously

http://git-wip-us.apache.org/repos/asf/bigtop/blob/87e7d01d/bigtop-deploy/puppet/modules/hadoop_zookeeper/manifests/init.pp
----------------------------------------------------------------------
diff --git a/bigtop-deploy/puppet/modules/hadoop_zookeeper/manifests/init.pp b/bigtop-deploy/puppet/modules/hadoop_zookeeper/manifests/init.pp
index 6965090..31a609e 100644
--- a/bigtop-deploy/puppet/modules/hadoop_zookeeper/manifests/init.pp
+++ b/bigtop-deploy/puppet/modules/hadoop_zookeeper/manifests/init.pp
@@ -61,7 +61,7 @@ class hadoop_zookeeper (
   class server($myid,
                 $port = "2181",
                 $datadir = "/var/lib/zookeeper",
-                $ensemble = ["localhost:2888:3888"],
+                $ensemble = [$myid, "localhost:2888:3888"],
                 $kerberos_realm = $hadoop_zookeeper::kerberos_realm,
   ) inherits hadoop_zookeeper {
     include common

http://git-wip-us.apache.org/repos/asf/bigtop/blob/87e7d01d/bigtop-deploy/puppet/modules/hadoop_zookeeper/templates/zoo.cfg
----------------------------------------------------------------------
diff --git a/bigtop-deploy/puppet/modules/hadoop_zookeeper/templates/zoo.cfg b/bigtop-deploy/puppet/modules/hadoop_zookeeper/templates/zoo.cfg
index 69d98c4..e255a0a 100644
--- a/bigtop-deploy/puppet/modules/hadoop_zookeeper/templates/zoo.cfg
+++ b/bigtop-deploy/puppet/modules/hadoop_zookeeper/templates/zoo.cfg
@@ -26,8 +26,14 @@ syncLimit=5
 dataDir=<%= @datadir %>
 # the port at which the clients will connect
 clientPort=<%= @port %>
-<% @ensemble.each_with_index do |server,idx| %>
+<% if !@ensemble[0].nil? && @ensemble[0].length == 2 %>
+  <% @ensemble.each do |idx, ip| %>
+server.<%= idx %>=<%= ip %>
+  <% end %>
+<% else %>
+  <% @ensemble.each_with_index do |server,idx| %>
 server.<%= idx %>=<%= server %>
+  <% end %>
 <% end %>
 # purge snapshots every day
 autopurge.purgeInterval=24

http://git-wip-us.apache.org/repos/asf/bigtop/blob/87e7d01d/bigtop-deploy/puppet/modules/hadoop_zookeeper/tests/init.pp
----------------------------------------------------------------------
diff --git a/bigtop-deploy/puppet/modules/hadoop_zookeeper/tests/init.pp b/bigtop-deploy/puppet/modules/hadoop_zookeeper/tests/init.pp
index 0340f10..7158714 100644
--- a/bigtop-deploy/puppet/modules/hadoop_zookeeper/tests/init.pp
+++ b/bigtop-deploy/puppet/modules/hadoop_zookeeper/tests/init.pp
@@ -16,5 +16,5 @@
 hadoop_zookeeper::client { "zoo visitor": }
 hadoop_zookeeper::server { "test-oozie-server":
   myid => "0",
-  ensemble => ["foo:2888:3888", "bar:2888:3888", "baz:2888:3888"],
+  ensemble => [[0, "foo:2888:3888"], [1, "bar:2888:3888"], [2, "baz:2888:3888"]],
 }