Support Questions
Find answers, ask questions, and share your expertise

Using blueprints for cluster WITHOUT a namenode

New Contributor

I am trying to automate a cluster deployment for Kafka. I am able do this using the Ambari UI however I am having issues with blueprints.

Here is how I deployed using the Web UI


When deploying via the blueprint API I am getting an error about not having a NAMENODE. ( see full error at bottom of post) I first tried this with a handcrafted blueprint file. I went back and configured using the Ambari webUI and exported the blue print and got the same error.

Can anyone suggest a way of working around this issue?

Here is the blueprint I am using


"configurations" : [ ],

"host_groups" : [

{ "name" : "host_group_1",

"components" : [

{ "name" : "ZOOKEEPER_SERVER" },

{ "name" : "ZOOKEEPER_CLIENT" },

{ "name" : "KAFKA_BROKER" } ],

"cardinality" : "3" },

{ "name" : "host_group_2",

"components" : [

{ "name" : "METRICS_COLLECTOR" },

{ "name" : "METRICS_GRAFANA" },

{ "name" : "METRICS_MONITOR" },

{ "name" : "ZOOKEEPER_CLIENT" }],

"cardinality" : "1" }


"Blueprints" : {

"blueprint_name" : "blueprint-kafka01",

"stack_name" : "HDP",

"stack_version" : "2.4" } }

Full error:

02 Jun 2016 15:10:43,768 ERROR [pool-9-thread-1] TopologyManager:775 - TopologyManager.ConfigureClusterTask: An exception occurred while attempting to process cluster configs and set on cluster:

java.lang.IllegalArgumentException: Unable to update configuration property 'xasecure.audit.destination.hdfs.dir' with topology information. Component 'NAMENODE' is mapped to an invalid number of hosts '0'.

at org.apache.ambari.server.controller.internal.BlueprintConfigurationProcessor$SingleHostTopologyUpdater.updateForClusterCreate(

at org.apache.ambari.server.controller.internal.BlueprintConfigurationProcessor.doUpdateForClusterCreate(

at org.apache.ambari.server.topology.ClusterConfigurationRequest.process(

at org.apache.ambari.server.topology.TopologyManager$

at org.apache.ambari.server.topology.TopologyManager$


at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(

at java.util.concurrent.ScheduledThreadPoolExecutor$

at java.util.concurrent.ThreadPoolExecutor.runWorker(

at java.util.concurrent.ThreadPoolExecutor$



Filed a bug to track this issue. Will investigate and update this thread.

It may be related to this dependency,



New Contributor

Whats off is that using the web app doesn't have the issue. I was always under the impression was that blueprints was just automating the same rest calls the webui was calling.

It seems in this case blueprints is doing some additional validation the webui is not doing .

how is the role_command_order.json file being used?