Nathan Falk created AMBARI-12765:
------------------------------------
Summary: Hooks scripts should not depend on HDFS
Key: AMBARI-12765
URL: https://issues.apache.org/jira/browse/AMBARI-12765
Project: Ambari
Issue Type: Improvement
Components: ambari-server
Affects Versions: 2.1.0
Environment: IBM Open Platform 4.1 with Spectrum Scale
Reporter: Nathan Falk
Priority: Minor
With IBM Open Platform version 4.1, it is possible to replace HDFS with
Spectrum Scale (f.k.a. GPFS) using a new stack definition.
There is some initialization which takes place in the hooks/before-ANY,
hooks/after-INSTALL and hooks/before-START which should be performed
independent of the underlying filesystem implementation, but is currently only
being performed if "params.has_namenode" tests True.
has_namenode is defined as "not len(namenode_host) == 0" where namenode_host
comes from "/clusterHostInfo/namenode_host".
With the Spectrum Scale stack, the HDFS service is not installed, and so there
is no namenode_host, and so has_namenode tests false and some of the
initialization in these hooks scripts is not getting done, which leads to
failures later on during installation or when attempting to start services.
We are currently working around this problem by recursively copying the hooks
directory from the base stack (in practice, this ends up being BigInsights 4.0)
to the Specrum Scale stack, and then replacing the definition of has_namenode
in each of the params.py files with "has_namenode=True".
This solution isn't ideal, as it's possible that some of the code may actually
be specific to or dependent on HDFS. But in looking over the code as it is
today, I can't see any harm in executing that code regardless of whether
namenode_host is set or not.
I'm sure there is some reason why these checks for has_namenode were
included in the first place, so if somebody can recall that history, maybe we
can better understand how to change the code to support installations without
the HDFS service.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)