Return-Path: X-Original-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 284AB600E for ; Mon, 4 Jul 2011 11:52:48 +0000 (UTC) Received: (qmail 74235 invoked by uid 500); 4 Jul 2011 11:52:47 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 74103 invoked by uid 500); 4 Jul 2011 11:52:46 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 74094 invoked by uid 99); 4 Jul 2011 11:52:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jul 2011 11:52:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jul 2011 11:52:43 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 50A8136ABB for ; Mon, 4 Jul 2011 11:52:22 +0000 (UTC) Date: Mon, 4 Jul 2011 11:52:22 +0000 (UTC) From: "Steve Loughran (JIRA)" To: common-issues@hadoop.apache.org Message-ID: <418933437.1694.1309780342327.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <710160053.68701.1307208347759.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HADOOP-7359) Pluggable interface for cluster membership MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HADOOP-7359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13059399#comment-13059399 ] Steve Loughran commented on HADOOP-7359: ---------------------------------------- Some more comments after looking at the code * It'd be good to split cleanup (imports, better iteration) from the cluster changes, and put the cleanup in first. * I'm not sure about logging excludes data at info level; it seems over-verbose. If it does go in, it should link to a wiki page on ExcludesFile to say "don't panic, this is optional" * Following on with the new API model, I think the clustering should be a class, not an interface * There's an assumption in the code that get[Excluded]Hosts() never fails; probably an implicit one that it's fast. It'd make sense for the calls to be able to throw IOEs, as they could be triggering live directory lookups, and if bounded execution time is a requirement, that should be in the javadocs "must return in under 100 milliseconds" * I wouldn't mark the various AdminOperationsProtocols as stable, as they are clearly moving around. Related to this, I could imagine another JIRA issue of a kill -something that would trigger a refresh on any/all registered services in the VM. That way even if you don't have a refresh rate, you can manually trigger a reload. > Pluggable interface for cluster membership > ------------------------------------------ > > Key: HADOOP-7359 > URL: https://issues.apache.org/jira/browse/HADOOP-7359 > Project: Hadoop Common > Issue Type: Improvement > Reporter: Travis Crawford > Attachments: HADOOP-7359.diff > > > Currently Hadoop uses local files to determine cluster membership. With HDFS for example, dfs.hosts and dfs.hosts.exclude are used. > To enable tighter integrations cluster membership should be an interface, with the current file-based functionality provided as the default implementation. The common case would be no functional change, however, sites could plug an alternative implementation in, such as pulling the machine lists from a machine database. > DETAILS: > Two machine lists, includes and excludes, are used to define cluster membership and state. HostsFileReader currently handles reading these lists from files, who's names are passed in by FSNamesystem for HDFS and JobTracker for MR. > The proposed change is adding a HostsReader interface to common, and changing HostsFileReader to an abstract class that functions the same as today. > Two new classes, DFSHostsFileReader and MRHostsFileReader, extend HostsFileReader and simply pass the appropriate file names in. These new classes are needed because config key names live outside common. > Two new conf keys, defaulting to the file-based readers, would be added to choose a different hosts reader: dfs.namenode.hosts.reader.class mapreduce.jobtracker.hosts.reader.class > Comments/suggestions? I have most of this written already but would love some feedback on the general idea before posting the diff. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira