The Scale of Universe(宇宙的大小)
回复
org.apache.hadoop.conf 提供访问配置文件的借口
配置文件是 name/value 的XML 文件,通常每一个元素都是以<code>String</code> 或者 {@link Path} 的方式给出的,如果是以前者的方式给出的,则会配合类路径来检查这个文件,如果是后者方式给出的,则直接检查对应的文件,比如有下面的定义:
1: <property>
2: <name>basedir</name>
3: <value>/user/{user.name}</value>
4: </property>
5:
6: <property>
7: <name>tempdir</name>
8: <value>{basedir}/tmp</value>
9: </property>
当有conf.get(“tempdir”) 这样的调用时,{basedir} 被解析为配置的另一个属性,同样{user.name}最终也被解析为系统中具有这个名称的值。
core 文件夹下有个versionProtocol 是所有使用Hadoop RPC 的父类。它只具有一个获取版本的方法。
ClientDatanodeProtocol、InterDatanodeProtocol、ClientProtocol、DatanodeProtocol 和 NamenodeProtocol 是他们的子类。关系如下:
他们在Client、Namenode 和 Datanode 三方的关系如下图:
在hdfs protocol 下是一些公用的Protocol,UML 如下(没有包括namenode 内的protocol):
NamenodeProtocol
InterDatanodeProtocol
DatanodeProtocol
ClientProtocol(最复杂重要,实现了客户端操作名字空间的接口)
ClientDatanodeProtocol
最后附上namenode 启动的流程