[
https://issues.apache.org/jira/browse/AMBARI-1783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13633330#comment-13633330
]
Brian Swan commented on AMBARI-1783:
------------------------------------
This is a great start. Some thoughts...
• Allowing the various sections (Stack Def., Stack Conf., Host Manifest,
Host-Component Mapping) to be consumable separately would be helpful for a
number of reasons:
○ Stack Def will be written by a stack author. A cluster admin
(someone deploying a cluster) does not need to be concerned with these. He
*does* need to be concerned with the Host Manifest and Host-Component Mapping
(which describe the topology of the cluster).
○ In some cases, host details (as specified in the Host
Manifest) will be controlled by other tools (such as System Center Virtual
Machine Manger or an agent in a Cloud environment).
○ In some cases, Host-Component Mapping will be controlled by a
tool (such as System Center Virtual Machine Manager, or an agent in a Cloud
environment) and will not depend on this content in the blueprint (i.e. it
needs to be ignorable).
○ Introducing a level of abstraction to the Host Manifest and
Host-Component Mapping content that allows a cluster admin to define the
topology of a cluster without specifying host details of mapping details would
help with the two previous points. For example:
"Node": [
{
"Name": "Master",
"Count": 1,
"Component": [ "openjdk7", "core",
"namenode", "resourcemanager"],
"Type": "HeadNode"
},
{
"Name": "Slave",
"Count": 4,
"Component": [ "openjdk7", "core",
"datanode", "nodemanager", "drawbridge"],
"Type": "WorkerNode"
}
],
• Providing for an option to instal custom software (such as Python or
a specific version of the JDK) across a cluster could be very useful. This
could be as simple as a reference to a script that knows how to install
software. For example, this could be part of the Stack Definition (though this
doesn't adhere exactly to the proposed syntax):
"Service": [
{
"Name": "OracleJDK",
"Component": [
{
"Cardinality": "*",
"IsRequired": false,
"IsServerComponent": false,
"Name": "OracleJDK",
"Package": {
"Type": "custom",
"Name": "OracleJDK",
"ScriptFileName": "OracleJDK.ps1"
}
}
]
},
• Resource URIs in the Stack Configuration would allow for
identification of where distributions (whether they be Hadoop distributions or
custom software) could be downloaded. In the example below, the Resources
identify where the hdinsight and python packages should be downloaded from:
"Distros": [
{ "Name": "hdinsight", "Version": "1.0.1", "FileName":
"hdp-azure-1.0.1.package.zip" },
{ "Name": "python", "Version": "2.6", "FileName":
"python.zip"}
],
"Resources": [
{"HDP":"http://mycontainer.blob.core.windows.net/hdp-azure-1.01.package.zip"},
{"Python":"http://mycontainer.blob.core.windows.net/python.zip"}]
],
• A Users section in the Stack Configuration would allow for users to
be created on machines in the cluster as they are provisioned. Hadoop services
would run as these users. This section could be ignored when it isn't needed.
"Users": [
{
"Groups": [
"hadoopadmin"
],
"Name": "hadoopuser1",
"Password": "pwd",
"Type": "local"
}
],
> Specification for a cluster blueprint consumable by Ambari
> ----------------------------------------------------------
>
> Key: AMBARI-1783
> URL: https://issues.apache.org/jira/browse/AMBARI-1783
> Project: Ambari
> Issue Type: New Feature
> Affects Versions: 1.3.1
> Reporter: Sumit Mohanty
> Assignee: Sumit Mohanty
> Fix For: 1.3.1
>
> Attachments: Ambari-BluePrint-0.1.docx, CompleteBlueprint.txt,
> HostComponentMapping.txt, HostManifest.txt, StackConfiguration.txt,
> StackDefinition.txt
>
>
> Deployment of a hadoop cluster can be modeled as the mapping of a stack
> definition to a set of host while satisfying placement constraints. A stack
> definition refers to the description of various services that comprise a
> hadoop stack (e.g. HDP-1.2.1), components associated with the services, and
> configuration properties. A set of available hosts is specified through a
> host-manifest that lists the available hosts and relevant
> properties/characteristics of each host. A cluster blueprint is specification
> of a hadoop stack mapped to a set of hosts. Mapping to a host can be a direct
> mapping - e.g. deploy this component X on host Y or a host can be specified
> as a set of requirements which is used to select the most appropriate host(s)
> from a host-manifest.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira