本文接下来描述hadoop-1.2.0的系统搭建,在搭建环境的过程中可能会碰到很多问题,需要考验开发人员的足够的耐心
本人的系统环境是linuxmint15 64bit
a. 首先需要编译hadoop-1.2.0系统,在终端进入${hadoop.root}目录,执行ant eclipse命令,会自动下载相关依赖jar,编译项目(因为本人是要导入到eclipse开发工具里面,所以执行的是eclipse命令)
b. 在运行Hadoop之前,需要先配置Hadoop的环境,指明Java环境的目录。 编辑${hadoop.root}/conf/hadoop-env.sh文件,添加java的环境变量
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS" export HADOOP_SECONDARYNAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS" export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS" export HADOOP_BALANCER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS" export HADOOP_JOBTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS" export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
c. 为了方便在终端运行Hadoop的命令,我们可以将${hadoop.root}/bin目录添加到至终端的环境目录中,编辑/etc/profile文件(sudo gedit /etc/profile),在后面添加
export HADOOP_INSTALL=/home/chenying/workspace/hadoop-1.2.0
export PATH=$PATH:$HADOOP_INSTALL/bin
d. 至此,Hadoop的基本安装与配置已经完成,可以通过在终端中输入如下命令测试Hadoop是否安装成功:
在终端运行hadoop version命令,若成功则应该输出hadoop的版本信息
chenying@Ftpdown ~ $ hadoop version Hadoop 1.2.1-SNAPSHOT Subversion -r Compiled by chenying on Fri May 31 04:22:09 CST 2013 From source with checksum 2e0dac51ede113c1f2ca8e7d82fb3405 This command was run using /home/chenying/workspace/hadoop-1.2.0/hadoop-core-1.2.0.jar
2) Hadoop运行模式的配置
Hadoop有三种运行模式:单机模式(Standalone)、伪分布模式(Psedu-distributed)和全分布模式(Fully distributed)。前两者用于在单台机器上部署环境,为了方便后续的开发及更加真实地模拟分布式环境,我们采用伪分布模式(其余两种模式的部署请参阅《Hadoop:The Definitive Guide》.Appendix A)。
a. 采用伪分布式模式需要配置${hadoop.root}/conf/下的core-site.xml、hdfs-site.xml、mapred-site.xml文件,分别如下:
core-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/chenying/workspace/hadoop-1.2.0/tmp/hadoop-${user.name}</value> </property> </configuration>
hdfs-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <!--<property> <name>dfs.permissions</name> <value>false</value> </property>--> </configuration>
mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
b. 安装配置SSH
在伪分布式运行模式下,与全分布式模式一样,Hadoop会通过SSH在集群中的主机上运行守护程序,所以我们还需要安装和配置SSH Server。对于linuxmint15来说,系统已经自带了SSH Client,所以我们只需要安装SSH Server即可。在终端运行如下命令安装SSH Server:
$sudo apt-get install openssh-server
安装完成后,为了方便,还应该配置SSH运行在无密码的登陆状态下,可以通过如下命令完成这一配置:
%ssh-keygen –t rsa –f ~/.ssh/id_rsa (备注:执行此条命令后根据提示信息,不输入密码直接回车就等设置无密码)
%cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置完成后,可以通过如下命令测试SSH:
%ssh localhost
若成功,则可以看到类似的信息:
Welcome to Linux Mint 15 Olivia (GNU/Linux 3.8.0-19-generic x86_64) Welcome to Linux Mint * Documentation: http://www.linuxmint.com 35 packages can be updated. 0 updates are security updates. Last login: Fri May 31 06:02:50 2013 from localhost
c. 格式化HDFS并启动
在启动Hadoop之前,必须先格式化HDFS,以创建新的文件系统并初始化namenode的文件结构,可以通过如下命令完成这一操作:
%hadoop namenode –format
格式化完成之后,就可以启动Hadoop了:
%start-all.sh
若需要停止Hadoop,只需要在输入如下命令即可:
%stop-all.sh
注意:在关闭namenode节点的电源之前,务必保证先停止Hadoop,否则可能造成HDFS文件系统出错,下次启动时可能会丢失文件。若出现此意外情况,可以通过格式化HDFS命令修复,但无法保证HDFS上的原文件的找回。
d. 测试
Hadoop默认启动了两个端口用于查看Hadoop的状态:通过在浏览器中打开http://localhost:50070来查看HDFS的运行状态,通过http://localhost:50030可以查看MapReduce的运行状态。若可以成功打开网页,则完成了Hadoop的伪分布式部署。
---------------------------------------------------------------------------
本系列Hadoop1.2.0开发笔记系本人原创
转载请注明出处 博客园 刺猬的温驯
本文链接 http://www.cnblogs.com/chenying99/archive/2013/05/31/3109648.html