今天下午花了一下午的时间在虚拟机的linux平台下面配置了hadoop,其中出现了一些问题,但是通过自己上网查找资料都一一进行了解决。最后成功的配置了伪分布式hadoop。什么是伪分布式hadoop呢?一般而言,可以把伪分布的hadoop当做只有一个节点的集群,在这个集群中,这个节点即是master,也是一个slave,即是一个NameNode,也是一个DataNode,即是一个JobTracker,也是TaskTracer。
第一步:在linux环境下安装jdk1.6注意这里是jdk1.6。不要采用jdk1.7。在Oracle网站上下载jdk1.6。具体的网址为: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u10-oth-JPR 。这里注意的是要下载与自己系统相对应的jdk。我的linux是64位的,所以jdk也要使用64的。在下载栏目中可以看到jdk1.6后面对应的x64即为64位的。我刚开始使用的是jdk-6u10-linux-i586.bin。下载以后进行手动安装发生了错误,说明还是需要采用64位的,所以我采用了jdk-6u11-linux-x64.bin,这个版本是没有问题的。然后下载,注意linux默认的下载的目录是/home/lixiaopeng/主文件夹/下载。在这个目录下就有了jdk-6u11-linux-x64.bin。然后用命令行创建/usr/lib/jvm/jdk。因为usr/lib目录是系统级别的目录。有一定的保护措施,所以再创建的时候,我切换到了root模式下面。mkdir /usr/lib/jvm/jdk即创建。然后仍然是root模式下,使用命令行模式。
root......# mv /home/lixiaopeng/jdk-6u11-linux-x64.bin /usr/lib/jvm/jdk
就可以将该jdk-6u11-linux-x64.bin转到后面的目录jdk中。 接下来修改jdk-6u11-linux-x64.bin的权限,使用:sudo chmod u+x jdk-6u11-linux-x64.bin。这里要注意的是 chmod的意思就是改变一个文件的权限,这个命令使用“用户组+/-权限”的表述方式来增加和删除相应的权限,一般而言,用户组包括了文件属主(u),文件属组(g),其他人(o)和所有人(a)。而权限包括了读取(r),写入(w)和执行(x)。对于 jdk-6u11-linux-x64.bin而言。对于文件属主(u)的权限是读写。可以右键--->属性-->权限查看。所以首先改变属主u的权限增加 x。即可以执行。
然后输入: sudo -s ./jdk-6u11-linux-x64.bin。即将bin文件打开,成为一个文件夹名叫:jdk1.6.0_11。如果想查看文件的话,可以用 ls -b 可以查看 bin文件。
然后配置环境变量 :sudo gedit /etc/profile 。etc文件夹中放着系统启动与配置的文件,而profile进行环境变量的配置。
在gedit的最下面输入:
#set Java Environment
export JAVA_HOME=/usr/lib/jvm/jdk/jdk1.6.0_11。
export CLASSPATH=“.:$JAVA_HOME/lib:$CLASSPATH”
export PATH= "$JAVA_HOME/:$PATH"
这一步和windows下的配置有相似之处。就是为了使得系统找到jdk。
接下来需要注销一下linux重新启动之后,输入 java -version即可看到版本号。
二、配置SSH免密码登陆。(省略。可以参见《hadoop实战》p21)
三、hadoop安装和运行。
下载hadoop-1.0.1 tar.gz 并且将其解压到/home/lixiaopeng目录下面,命令行如下:
tar -zxvf hadoop-1.0.1 tar.gz /home/lixiaopeng
解压以后是一个hadoop-1.0.1的文件夹,里面有很多子目录和文件。进入conf文件夹,修改配置文件。几个文件的配置的代码见《hadoop实战》p23。需要补充的是:
在启动hadoop前,需要格式化Hadoop的文件系统HDFS,切换到root模式下,进入到hadoop-1.0.1文件夹中的bin 中。具体的命令行如下:
root@li-ubuntu:/home/lixiaopeng/hadoop-1.0.1/bin# ./hadoop namenode -format (即bin文件夹中的hadoop可以看成是一个sh文件)。
接下来输入命令,启动所有的进程:
root@li-ubuntu:/home/lixiaopeng/hadoop-1.0.1/bin# ./start-all.sh(即start-all.sh也是一个sh文件 。可以直接用 ./ 启动)
打开浏览器输入:
http://localhost:50030(MapReduce的界面)
http://localhost:50070(HDFS的界面)
如下:
安装完成