由于Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。
我的三台机器上是这样的:都有一个frank的帐户,主目录是/home/frank
Hadoop部署目录结构如下:/home/dbrg/HadoopInstall,所有的hadoop版本放在这个目录中。
将hadoop0.21.0压缩包解压至HadoopInstall中,为了方便以后升级,建议建立一个链接指向要使用的hadoop版本,不妨设为hadoop
$ ln -s hadoop0.21.0 hadoop
这样一来,所有的配置文件都在/hadoop/conf/目录中,所有执行程序都在/hadoop/bin目录中。
但是由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因此建议将配置文件与安装目录分离,一种比较好的方法就是建立一个存放配置文件的目录,/home/dbrg/HadoopInstall/hadoop-config/,然后将/hadoop/conf/目录中的core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves,hadoop_env.sh六个文件拷贝到hadoop-config/目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/home/frank/.bashrc和/etc/profile中设定。
综上所述,为了方便以后升级版本,我们需要做到配置文件与安装目录分离,并通过设定一个指向我们要使用的版本的hadoop的链接,这样可以减少我们对配置文件的维护。在下面的部分,你就会体会到这样分离以及链接的好处了。
通用方案语法
虽然URL其他部分的语法因方案的不同而不同,但那些直接使用基于IP的协议来定位因特网上的主机的URL方案都使用了如下形式的通用语法来表示特定的方案数据:
//<用户名>:<密码>@<主机>:<端口>/
可能会省略“<用户名>:<密码>@”,“ :<密码>”,“ :<端口>”,和“/”这些部分的某些或者全部。这些方案的特定数据以双斜线“//”开头来表明它遵从通用因特网方案语法。各个部分分别遵守如下规则:
用户名:任意的用户名称。有些方案(例如:ftp)允许使用用户名称的描述。
密码:任意的密码。如果存在的话,它紧跟在用户名后面并用一个冒号隔开。
用户名(和密码)如果存在的话,其后紧跟一个商用符号“@”。在用户名和密码字段中出现的任何“:”,“@”或者“/”都要进行编码。注意空的用户名或者密码不同于没有用户名和密码;决不能在没有指定用户名的情况下指定密码。例如:的用户名为空并且没有密码,没有用户名,而的用户名是“foo”并且密码为空。
主机:网络主机的域名,或者它的以“.”分隔的四组十进制数字集合形式的IP地址。域名的形式在RFC1034[13]的3.5节和RFC1123[5]的2.1节中进行了描述,即用“.”分隔的域标志串,域标志以字母或者数字开头和结束,也可能包含“-”字符。最右边的域标志不能以数字开头,这样就在语法结构上将域名和IP地址区分开来了。
端口:指明链接的端口。大部分方案都给协议指定一个默认的端口。也可以随意指定一个十进制形式的端口,并用冒号与主机隔开。如果忽略端口,那么这个冒号也要忽略。
url路径:定位符的其他部分由方案的特殊数据组成,这些特殊数据被称为“url-路径”。它提供了如何对特定资源进行访问的详细信息。注意主机(或端口)与url-路径间的“/”不是url-路径的一部分。url-路径的语法依赖于所使用的方案。也依赖于它在方案中的解释方法。