Repository: bigtop
Updated Branches:
  refs/heads/master 7e4607009 -> 64965ff4e


BIGTOP-2555: hadoop charms should use bind-host overrides (closes #153)

Signed-off-by: Kevin W Monroe <[email protected]>


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

Branch: refs/heads/master
Commit: 64965ff4eb00c347ca9ee7e3ec327c92f4d8d8a5
Parents: 7e46070
Author: Kevin W Monroe <[email protected]>
Authored: Mon Oct 17 20:43:58 2016 +0000
Committer: Kevin W Monroe <[email protected]>
Committed: Tue Oct 25 17:51:10 2016 -0500

----------------------------------------------------------------------
 .../hadoop/layer-hadoop-namenode/reactive/namenode.py  | 13 ++++---------
 .../reactive/resourcemanager.py                        | 12 ++++++++++++
 2 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bigtop/blob/64965ff4/bigtop-packages/src/charm/hadoop/layer-hadoop-namenode/reactive/namenode.py
----------------------------------------------------------------------
diff --git 
a/bigtop-packages/src/charm/hadoop/layer-hadoop-namenode/reactive/namenode.py 
b/bigtop-packages/src/charm/hadoop/layer-hadoop-namenode/reactive/namenode.py
index c8a71da..b18bd60 100644
--- 
a/bigtop-packages/src/charm/hadoop/layer-hadoop-namenode/reactive/namenode.py
+++ 
b/bigtop-packages/src/charm/hadoop/layer-hadoop-namenode/reactive/namenode.py
@@ -20,7 +20,6 @@ from charms.layer.apache_bigtop_base import (
 )
 from charmhelpers.core import hookenv, host
 from jujubigdata import utils
-from path import Path
 
 
 ###############################################################################
@@ -62,9 +61,13 @@ def install_namenode():
             'namenode',
             'mapred-app',
         ],
+        # NB: We want the NN to listen on all interfaces, so bind to 0.0.0.0.
         overrides={
             'hadoop::common_hdfs::hadoop_namenode_port': hdfs_port,
+            'hadoop::common_hdfs::hadoop_namenode_bind_host': '0.0.0.0',
             'hadoop::common_hdfs::hadoop_namenode_http_port': webhdfs_port,
+            'hadoop::common_hdfs::hadoop_namenode_http_bind_host': '0.0.0.0',
+            'hadoop::common_hdfs::hadoop_namenode_https_bind_host': '0.0.0.0',
         }
     )
     bigtop.trigger_puppet()
@@ -75,14 +78,6 @@ def install_namenode():
     # requirement.
     utils.initialize_kv_host()
 
-    # make our namenode listen on all interfaces
-    hdfs_site = Path('/etc/hadoop/conf/hdfs-site.xml')
-    with utils.xmlpropmap_edit_in_place(hdfs_site) as props:
-        props['dfs.namenode.rpc-bind-host'] = '0.0.0.0'
-        props['dfs.namenode.servicerpc-bind-host'] = '0.0.0.0'
-        props['dfs.namenode.http-bind-host'] = '0.0.0.0'
-        props['dfs.namenode.https-bind-host'] = '0.0.0.0'
-
     # We need to create the 'mapred' user/group since we are not installing
     # hadoop-mapreduce. This is needed so the namenode can access yarn
     # job history files in hdfs. Also add our ubuntu user to the hadoop

http://git-wip-us.apache.org/repos/asf/bigtop/blob/64965ff4/bigtop-packages/src/charm/hadoop/layer-hadoop-resourcemanager/reactive/resourcemanager.py
----------------------------------------------------------------------
diff --git 
a/bigtop-packages/src/charm/hadoop/layer-hadoop-resourcemanager/reactive/resourcemanager.py
 
b/bigtop-packages/src/charm/hadoop/layer-hadoop-resourcemanager/reactive/resourcemanager.py
index 3f3e9ae..61c7a3b 100644
--- 
a/bigtop-packages/src/charm/hadoop/layer-hadoop-resourcemanager/reactive/resourcemanager.py
+++ 
b/bigtop-packages/src/charm/hadoop/layer-hadoop-resourcemanager/reactive/resourcemanager.py
@@ -72,6 +72,8 @@ def install_resourcemanager(namenode):
         rm_http = get_layer_opts().port('rm_webapp_http')
         jh_ipc = get_layer_opts().port('jobhistory')
         jh_http = get_layer_opts().port('jh_webapp_http')
+        hdfs_port = namenode.port()
+        webhdfs_port = namenode.webhdfs_port()
 
         bigtop = Bigtop()
         bigtop.render_site_yaml(
@@ -82,11 +84,21 @@ def install_resourcemanager(namenode):
             roles=[
                 'resourcemanager',
             ],
+            # NB: When we colocate the NN and RM, the RM will run puppet apply
+            # last. To ensure we don't lose any hdfs-site.xml data set by the
+            # NN, override common_hdfs properties again here.
             overrides={
                 'hadoop::common_yarn::hadoop_rm_port': rm_ipc,
                 'hadoop::common_yarn::hadoop_rm_webapp_port': rm_http,
+                'hadoop::common_yarn::hadoop_rm_bind_host': '0.0.0.0',
+                'hadoop::common_mapred_app::mapreduce_jobhistory_host': 
'0.0.0.0',
                 'hadoop::common_mapred_app::mapreduce_jobhistory_port': jh_ipc,
                 'hadoop::common_mapred_app::mapreduce_jobhistory_webapp_port': 
jh_http,
+                'hadoop::common_hdfs::hadoop_namenode_port': hdfs_port,
+                'hadoop::common_hdfs::hadoop_namenode_bind_host': '0.0.0.0',
+                'hadoop::common_hdfs::hadoop_namenode_http_port': webhdfs_port,
+                'hadoop::common_hdfs::hadoop_namenode_http_bind_host': 
'0.0.0.0',
+                'hadoop::common_hdfs::hadoop_namenode_https_bind_host': 
'0.0.0.0',
             }
         )
         bigtop.trigger_puppet()

Reply via email to