1:下载hadoop-1.0.3.tar.gz安装包放到制定目录下;
2:将hadoop-1.0.3.tar.gz解压到/home/scs2000/app下(scs2000为当前用户名),其命令如下:
sudo tar xzf /mnt/hgfs/ubuntushare/hadoop-1.0.3.tar.gz
3:重命名文件夹hadoop-1.0.3为hadoop:
mv hadoop-1.0.3 hadoop
4:把hadoop的主属性改为scs2000:
sudo chown -R scs2000 hadoop
5:更新hadoop的环境变量:
gedit hadoop/conf/hadoop-env.sh
更改如下环境变量:
# The java implementation to use. Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
更改为本机jdk:
# The java implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_09
6:配置ssh
sudo apt-get install ssh
sudo apt-get install rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
7:验证ssh配置是否成功:
ssh localhost
注意在出现提示信息时应输入yes,不是直接回车:
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is d7:3f:3f:a0:bd:cc:42:09:b8:5d:8a:f1:62:45:28:37.
Are you sure you want to continue connecting (yes/no)? yes
8:搭建单机伪分布式运行环境
伪分布式运行模式是运行在单个机器上,每一个hadoop的守候一个单独的java进程。
配置conf/core-site.xml,添加如下内容:
gedit conf/core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property></configuration>
配置conf/hdfs-site.xml,添加如下内容:
gedit conf/hdfs-site.xml
<configuration> <property> <name>dfs:replication</name> <value>1</value> </property></configuration>
配置conf/mapred-site.xml,添加如下内容:
gedit conf/mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property></configuration>
9:格式化HDFS
进入hadoop目录。运行命令:
sudo bin/hadoop namenode -format
10:启动及验证hadoop监护进程
bin/start-all.sh
验证方法1:jps
验证方法2:
bin/hadoop dfsadmin -report
11:复制输入文件到HDFS
在HDFS下创建input目录,将hadoop/conf下的所有xml文件上传到input下:
bin/hadoop dfs -mkdir input
bin/hadoop dfs -put conf/*.xml input
查看input中上传的文件:
bin/hadoop dfs -ls input
12:运行例子,将结果输出到output。
bin/hadoop jar hadoop-examples-1.0.3.jar grep input output 'dfs[a-z].+'
如果报如下错误是因为执行了多次put之后,就会在分布式文件系统中生成子目录,删除重新put即可。
出现以上错误后执行如下命令清除多余子目录后在重新put。
部分运行结果:
13:结果文件输出
A:将结果输出文件从分布式文件系统拷贝到本地文件系统查看;
bin/hadoop dfs -get output output
cat output/*
B:在分布式文件系统上输出查看:
bin/hadoop fs -cat output/part-*