单机版hadoop平台搭建过程说明
一、引言
单机版的hadoop平台搭建指的是在单机上部署hadoop环境,以调试mapReduce程序。
本文的环境搭建是针对双系统(windows和linux)或者单linux系统的,而非windows下的linux虚拟机。并且,本文hadoop部署之前下载了如下的程序:ubuntu 10.10、hadoop 0.21.0、jdk1.6.0_37 for linux。这些程序均可以从网上下载,其中jdk1.6.0_37 for
linux是直接从官网上下载。
二、部署过程说明
参考网上相关资源,本文所采取的部署过程分为三个阶段:程序安装阶段、程序配置阶段、和运行测试阶段。程序安装阶段主要是按照ubuntu、jdk 和hadoop三个程序;程序配置阶段主要是配置相关环境变量、ssh key和对hadoop的配置;运行测试阶段主要是对搭建的环境运用hadoop自带的wordcount程序来测试hadoop环境搭建是否成功。
各个阶段的详细操作步骤如下。
2.1、程序安装阶段
2.1.1、安装ubuntu10.10
ubuntu的安装按照提示来就行,此处不做说明。
2.1.2、安装jdk
第一步:在usr下面新建一个文件夹Java,
然后将jdk复制过来
sudo mkdir /usr/Java
sudo cp jdk的路径
/usr/Java
第二步:进入到Java目录下,改变文件权限为可执行
cd /usr/Java
sudo
chmod
u+x
jdk1.6.0_37.bin
第三步:安装
sudo ./jdk1.6.0_23.bin
(现象为Unpacking....加一连串解压信息)
2.1.3、安装hadoop0.21.0
第一步:将hadoop0.21.0.tar.gz复制到usr的local目录下
sudo cp hadoop的路径
/usr/local
注:从网上下载的hadoop往往是压缩成rar的,这里需要现在本地解压,然后提取出来的文件里面就会出现hadoop0.21.0.tar.gz)
第二步:进入到local目录下,解压hadoop0.21.0.tar.gz
cd /usr/local
sudo tar -xzf hadoop0.21.0.tar.gz
第三步:为了方便管理,将解压后的文件夹名改为hadoop
sudo mv hadoop0.21.0 hadoop
第四步:创建一个名为hadoop的用户和用户组
1、创建一个名为hadoop的用户组
sudo addgroup hadoop
2、创建一个名为hadoop的用户,归到hadoop用户组
sudo adduser --ingroup hadoop hadoop
注:创建用户名需要输入用户的密码,本人测试用户的密码可以设置。在设置完密码之后,还需要输入用户的一些信息,可以不填,都敲回车,用系统默认的即可。
3、用gedit打开etc下的sudoers文件
sudo gedit /etc/sudoers
4、在
root
ALL=(ALL)
ALL
下面添加如下一行
hadoop ALL=(ALL) ALL
注:添加 hadoop ALL=(ALL) ALL
的意义在于能让hadoop用户使用“sudo”命令
2.2、程序配置阶段
2.2.1、配置环境变量
第一步:用gedit打开etc下的profile文件
sudo gedit /etc/profile
第二步:在文件最后加入如下几行
export
CLASSPATH=.:/usr/Java/jdk1.6.0_37/lib:/usr/Java/jdk1.6.0_37/jre/lib:$CLASSPATH
export
PATH=.:/usr/Java/jdk1.6.0_37/bin:/usr/Java/jdk1.6.0_37/jre/bin:/usr/local/hadoop/bin:$PATH
注:如果采用的是不同版本的jdk,这里要注意修改jdk的名称
第三步:保存后关闭gedit,并重启机器
sudo reboot
第四步:重启后用hadoop用户登录,验证配置是否成功
java -version
注:1)此处注意要是以hadoop用户登录系统,后续的所有部署过程都是在hadoop用户名下,
2)此语句执行后如显示了jdk版本的话说明配置成功,如果没有则需检查profile中路径是否正确
2.2.2、创建ssh-key
第一步:确保网络通畅,然后装载ssh服务
sudo apt-get install openssh-server
注:如果此语句执行失败且结果为“....没有可利用的包”的话,可以先执行
sudo apt-get update,以更新各个链接。执行此句要花较长时间,并且一直显示下载数据。
第二步:创建ssh-key
ls -la
/home/hadoop
sudo
chmod
777
/home/hadoop/.ssh -R
sudo
chown hadoop:hadoop
/home/hadoop/.ssh -R
ls -la
/home/hadoop
ssh-keygen -t rsa -P
ssh-keygen -t rsa
ssh-keygen -t rsa
--P
注:此语句执行后会要你填写key的保存位置,直接照着系统给出的那个默认位置填,也就是括号里的那个路径,如果全都照此文档操作的话那么括号中路径应该为"/home/hadoop/.ssh/id_rsa")
第三步:将此ssh-key添加到信任列表中,并启用此ssh-key
cat /home/hadoop/.ssh/id_rsa.pub >>
/home/hadoop/.ssh/authorized_keys
第四步:启动ssh服务
sudo service ssh start
2.2.3、配置hadoop
第一步:配置conf目录下的hadoop-env.sh中的JAVA_HOME
cd /usr/local/hadoop
sudo gedit conf/hadoop-env.sh
注:打开后在文档的上部某行有“#export JAVA_HOME=...”字样的地方,去掉“#”,然后在等号后面填写你的jdk路径,完全按此文档来的话应改为
"export
JAVA_HOME=/usr/Java/jdk1.6.0_37"
第二步:配置conf目录下的core-site.xml
sudo gedit conf/core-site.xml
注:打开后标签
中是空的,所以在空的地方加入如下配置
fs.default.name
hdfs://localhost:9000
dfs.replication
1
hadoop.tmp.dir
/home/hadoop/tmp
第三步:配置conf目录下的mapred-site.xml
sudo gedit conf/mapred-site.xml
注:打开后标签
中也是空的,添加如下配置
mapred.job.tracker
localhost:9001
2.3、运行测试阶段
2.3.1、格式化namenode (首次运行必需)
第一步:进入/usr/local/hadoop目录
cd /usr/local/hadoop
第二步:格式化namenode
hadoop namenode –format
2.3.2、启动hadoop
第一步:修改hadoop文件夹的权限,保证hadoop用户能正常访问其中的文件
sudo chown –hR hadoop
/usr/local/hadoop
第二步:启动hadoop
bin/start-all.sh
第三步:验证hadoop是否正常启动
jps
注:此语句执行后会列出已启动的东西NameNode,JobTracker,SecondaryNameNode...如果NameNode没有成功启动的话就要先执行"bin/stop-all.sh"停掉所有东西,然后重新格式化namenode,再启动
2.3.3、测试wordcount程序
第一步:准备跑wordcount程序需要的测试数据文件
sudo gedit /tmp/input1.txt
注:打开后随便输入一些内容,如"hello hadoop",然后保存退出。这里可以利用该命令创建多个input文件,然后利用下面的命令都提交到dfs上去。
第二步:将生成的测试数据文件上传到dfs文件系统中的input目录
hadoop fs -mkdir input(即在目录/usr/hadoop下创建目录input)
hadoop fs –put /tmp/input1.txt
input
注:1,此处两行命令也可以改为:hadoop dfs -copyFromLocal
/tmp/input1.txt input
2,此处可以利用如下hadoop命令来查看是否上传成功
hadoop命令
hadoop dfs –ls input
第三步:执行wordcount
bin/hadoop jar hadoop-mapred-examples-0.21.0.jar
wordcount input output
注:1,
此语句意为“对input目录下的所有文件执行wordcount,将统计结果输出到output目录中”,若output文件夹不存在则会自动创建一个
2,此句执行时,当前的目录应该是usr/local/hadoop
3,如果执行之后显示文件已经存在异常,则需要删除output目录,删除命令是:hadoop fs –rm output
4,此处要注意自己下载的hadoop版本中wordcount例子的全名,该文件在/usr/local/hadoop/bin
下,名称不对会显示找不到文件的异常
第四步:查看结果
hadoop dfs -cat output/part-r-00000
注:结果文件默认是输出到一个名为“part-r-00000”的文件中的,可用指令“hadoop dfs -ls output”查看output目录下除了part-r-0000文件外,还有一个success的日志文件
三、参考资源
1、
《hadoop实战》
2、
http://www.iteye.com/topic/891693