Return-Path: X-Original-To: apmail-incubator-ambari-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-ambari-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1900B9574 for ; Tue, 17 Jan 2012 06:26:12 +0000 (UTC) Received: (qmail 45289 invoked by uid 500); 17 Jan 2012 06:26:11 -0000 Delivered-To: apmail-incubator-ambari-dev-archive@incubator.apache.org Received: (qmail 45252 invoked by uid 500); 17 Jan 2012 06:26:07 -0000 Mailing-List: contact ambari-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@incubator.apache.org Delivered-To: mailing list ambari-dev@incubator.apache.org Received: (qmail 45233 invoked by uid 99); 17 Jan 2012 06:26:00 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Jan 2012 06:26:00 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.210.175] (HELO mail-iy0-f175.google.com) (209.85.210.175) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Jan 2012 06:25:51 +0000 Received: by iabz21 with SMTP id z21so2580602iab.6 for ; Mon, 16 Jan 2012 22:25:30 -0800 (PST) Received: by 10.42.168.134 with SMTP id w6mr8251650icy.20.1326781530279; Mon, 16 Jan 2012 22:25:30 -0800 (PST) Received: from [192.168.1.4] (c-76-21-120-131.hsd1.ca.comcast.net. [76.21.120.131]) by mx.google.com with ESMTPS id 36sm73884776ibc.6.2012.01.16.22.25.28 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 16 Jan 2012 22:25:29 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1084) Subject: Re: stack definition and component plugin From: Devaraj Das In-Reply-To: Date: Mon, 16 Jan 2012 22:25:27 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <6DCC0AA0-8585-4BD3-8DE9-4C11D1584A06@hortonworks.com> References: To: ambari-dev@incubator.apache.org X-Mailer: Apple Mail (2.1084) X-Virus-Checked: Checked by ClamAV on apache.org On Jan 16, 2012, at 10:08 PM, Eric Yang wrote: > Hi all, >=20 > The current hierarchical stack definition is confusing to me. > Supposedly, the definition can be expanded and flatten configuration > key value pair, and an example of defining namenode url and get > inherited in hbase configuration would look like this: >=20 > { > ... > "components": { > "hdfs": { > "roles": { > "namenode": { /* override one value on the namenode */ > "hadoop/hdfs-site": { > "dfs.https.enable": "true", > "fs.default.name": "hdfs://${namenode}:${port}/" > } > } > } > }, > "hbase": { > "roles": { > "region-server": { > "hbase/hbase-site": { > "hbase.rootdir": > "${components.hdfs.namenode.hadoop/hdfs-site.fs.default.name}/hbase" > } > } > } > } > } >=20 > hbase.rootdir is a key for hbase-site.xml, and it should contain key > of "fs.default.name" plus additional path for hbase to store data. In > my interpretation of the macro would look like > ${components.hdfs.namenode.hadoop/hdfs-site.fs.default.name}/hbase. > This seems like a utterly awkward method of describing inheritance. > Why don't we use a flat name space to remove additional logistics > imposed by Ambari. I agree that the syntax is fully accurate, but it > is a larger headache to maintain this hierarchical structure. >=20 > The second problem is the component plugin architecture sounds good in > theory. I see some scalability issues with this approach. Each > component describes the components that it depends on. This could > interfere with introducing new components. i.e. Mapreduce component > depends on HDFS. A new component is introduced, and name HBase. Now, > the Mapreduce component needs to update it's dependency to HDFS and > HBase and ZooKeeper. For introducing new component, there is a lot of > plugins updates to make the new version work. The plugin writer also > needs to make theoretical assumption that if components X is installed > do Y, otherwise do Z. Conditional assumption in plugin introduces > uncertainty and corner cases into the deployment system. The number > of permutation can greatly exceed the logics that is required to > handle by the plugin. >=20 Don't understand this. Every component knows what components it depends = on, right? MapRed component developer would know that it depends on = hdfs. If you depend on hbase, you should ensure that the list of = dependent components includes hbase... > Instead of using plugin architecture to manage deployment, it would be > safer to use a scripting approach to enable power administrator to > deploy a stack of software by writing shell script like script to > accomplish the deployment tasks. The recipes scripts can be shared by > the community to automate software stack deployment. This will ensure > the scope of Ambari deployment is focus on cross nodes orchestration > without having to build bell and whistles which does not scale well in > the long term. >=20 Actually, Ambari could get out of the business of orchestration. = Instead, the components should be updated to tolerate their dependencies = being down.. I have heard this from some people, and generally concur = with this thinking. It makes the ecosystem better (if you ignore Ambari = for the moment). > What do you guys think? >=20 > regards, > Eric