hadoop各配置文件加载情况

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

在hadoop 0.20.2版本中存在如下几个配置文件

core-default.xml
core-site.xml

hdfs-default.xml
hdfs-site.xml

mapred-default.xml
mapred-site.xml

 其中default中各个配置项可以参看我之前的blog里有说。下面总结下加载情况

在Configuration类中通过static加载方式加载了

core-default.xml
core-site.xml

也就是说所有用到Configuration的类都会加载这个配置项。

在以下几个类中会显示加载hdfs-*.xml

DataNode
NameNode
DFSck
DistributedFileSystem

 这几个类加载这些文件是通过Configuration来完成的,也就是说默认会将core-*的xml也加载进来。

以下几个类中会显示加载mapred-*.xml

JobClient
JobConf
JobTracker
TaskTracker

 同样他们的操作也是由Configuration来完成的,也就是说默认会将core-*的xml也加载进来

 

在hadoop命令中有以下类是执行命令的实体类

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等配置项的类,那么这些剩余的类使用的配置都是从

core-default.xml
core-site.xml

获得,所以如果你有针对以上类中需要使用的特定配置而不是使用系统默认的配置,那么需要配置在core-site.xml中,例如fs.default.name

你可能感兴趣的:(apache,xml,hadoop,Blog)