hadoop各配置文件加载景况
hadoop各配置文件加载情况之前依据名字想当然的把fs.default.name配置在hdfs-site.xml里,结果执行ls copy
hadoop各配置文件加载情况
之前依据名字想当然的把fs.default.name配置在hdfs-site.xml里,结果执行ls copy等命令都是本地的方式,后调试也未果,故想了下之前自己的操作,然后看了下代码发现都是配置惹的问题,故在此总结下各配置项的加载情况。
在hadoop 0.20.2版本中存在如下几个配置文件
Java代码??

- core-default.xml??
- core-site.xml??
- ??
- hdfs-default.xml??
- hdfs-site.xml??
- ??
- mapred-default.xml??
- mapred-site.xml??
?其中default中各个配置项可以参看我之前的blog里有说。下面总结下加载情况
在Configuration类中通过static加载方式加载了
Java代码??

- core-default.xml??
- core-site.xml??
也就是说所有用到Configuration的类都会加载这个配置项。
在以下几个类中会显示加载hdfs-*.xml
Java代码??

- DataNode??
- NameNode??
- DFSck??
- DistributedFileSystem??
?这几个类加载这些文件是通过Configuration来完成的,也就是说默认会将core-*的xml也加载进来。
以下几个类中会显示加载mapred-*.xml
Java代码??

- JobClient??
- JobConf??
- JobTracker??
- TaskTracker??
?同样他们的操作也是由Configuration来完成的,也就是说默认会将core-*的xml也加载进来
?
在hadoop命令中有以下类是执行命令的实体类
Java代码??

- namenode????????????????????CLASS=org.apache.hadoop.hdfs.server.namenode.NameNode??
- secondarynamenode????CLASS=org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode??
- datanode?????????????????????CLASS=org.apache.hadoop.hdfs.server.datanode.DataNode??
- fs?????????????????????????????????CLASS=org.apache.hadoop.fs.FsShell??
- dfs???????????????????????????????CLASS=org.apache.hadoop.fs.FsShell??
- dfsadmin??????????????????????CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin??
- mradmin???????????????????????CLASS=org.apache.hadoop.mapred.tools.MRAdmin??
- fsck??????????????????????????????CLASS=org.apache.hadoop.hdfs.tools.DFSck??
- balancer???????????????????????CLASS=org.apache.hadoop.hdfs.server.balancer.Balancer??
- jobtracker????????????????????CLASS=org.apache.hadoop.mapred.JobTracker??
- tasktracker???????????????????CLASS=org.apache.hadoop.mapred.TaskTracker??
- job???????????????????????????????CLASS=org.apache.hadoop.mapred.JobClient??
- queue???????????????????????????CLASS=org.apache.hadoop.mapred.JobQueueClient??
- pipes????????????????????????????CLASS=org.apache.hadoop.mapred.pipes.Submitter??
- version?????????????????????????CLASS=org.apache.hadoop.util.VersionInfo??
- jar????????????????????????????????CLASS=org.apache.hadoop.util.RunJar??
- distcp???????????????????????????CLASS=org.apache.hadoop.tools.DistCp??
- daemonlog???????????????????CLASS=org.apache.hadoop.log.LogLevel??
- archive?????????????????????????CLASS=org.apache.hadoop.tools.HadoopArchives??
- sampler????????????????????????CLASS=org.apache.hadoop.mapred.lib.InputSampler??
?也就是说从这些类中排除上面那些显示指定hdfs,mapred等配置项的类,那么这些剩余的类使用的配置都是从
Java代码??

- core-default.xml??
- core-site.xml??
获得,所以如果你有针对以上类中需要使用的特定配置而不是使用系统默认的配置,那么需要配置在core-site.xml中,例如fs.default.name
更多信息请查看?java进阶网?http://www.javady.com