[ https://issues.apache.org/jira/browse/HADOOP-785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12517538 ]
Devaraj Das commented on HADOOP-785: ------------------------------------ bq. I'd rather keep hadoop-default.xml sacrosanct, though we don't prevent you from editing it even today - thus it serves as a gold-standard for everyone +1 bq. This division could be done with xml comments - I don't think it needs to be so formal as to need a new field. +1 bq. Why don't you want to split up namenode vs. jobtracker and datanode vs. tasktracker? I understand that it's desirable to keep things simple, but dfs and mapreduce don't interact very much in terms of their configs, so there is a natural separation. This probably could be addressed by having a clear (documentation wise) separation in the configuration file(s). This is already done today in the hadoop-default.xml file via the three sections "global properties", "map/reduce properties" and "file system properties". Having the classes {Client, Server, Job}Configuration seems interesting, but one issue that needs to be looked at is what Michael points out. Some config items would be needed by both server and client. Items like fs.default.name can be handled fairly easily though it amounts to having duplicate config items in the files. The other (more semantic) issue that needs to be looked at is for things like ipc.client.connection.maxidletime. This config item is used, for example, by the TaskTracker to set it's client side connection idle timeout for the RPCs to the JobTracker. However, it also affects the timeout that the Tasks (Map/Reduce) would see, and, unless we have different values for this item in the server and client config files, both the entities would see the same timeout value. This could be an issue (since for Tasks i would have the value set to a very high number - ref HADOOP-1651). To summarize, we might end up having a couple of duplicate config items, potentially having different values. Does this seem like a problem? I am okay with such an arrangement but just wanted to bring out this issue while we are designing the system. By the way, this brings us to Doug's comment whether it makes sense to have a separate client-only configuration? Also, the current framework has a bug - for e.g. , if i programmatically set speculative execution to false in the JobConf, it is not considered by the framework. The framework has already read the value from the config files it has before i submitted my job and doesn't take notice of my requirement. Now this is a good thing for some config items like fs.default.name, where we DON'T want clients to tell us what the namenode is, but not so for things like mapred.speculative.execution. This issue probably needs to handled in this redesign. > Divide the server and client configurations > ------------------------------------------- > > Key: HADOOP-785 > URL: https://issues.apache.org/jira/browse/HADOOP-785 > Project: Hadoop > Issue Type: Improvement > Components: conf > Affects Versions: 0.9.0 > Reporter: Owen O'Malley > Assignee: Arun C Murthy > Fix For: 0.15.0 > > > The configuration system is easy to misconfigure and I think we need to > strongly divide the server from client configs. > An example of the problem was a configuration where the task tracker has a > hadoop-site.xml that set mapred.reduce.tasks to 1. Therefore, the job tracker > had the right number of reduces, but the map task thought there was a single > reduce. This lead to a hard to find diagnose failure. > Therefore, I propose separating out the configuration types as: > class Configuration; > // reads site-default.xml, hadoop-default.xml > class ServerConf extends Configuration; > // reads hadoop-server.xml, $super > class DfsServerConf extends ServerConf; > // reads dfs-server.xml, $super > class MapRedServerConf extends ServerConf; > // reads mapred-server.xml, $super > class ClientConf extends Configuration; > // reads hadoop-client.xml, $super > class JobConf extends ClientConf; > // reads job.xml, $super > Note in particular, that nothing corresponds to hadoop-site.xml, which > overrides both client and server configs. Furthermore, the properties from > the *-default.xml files should never be saved into the job.xml. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.