装机阶段:安装ubuntu,jdk和hadoop ;创建一个名为hadoop的用户和用户组 

配置阶段:配置环境变量 ,创建ssh key ,配置hadoop 

运行测试阶段:格式化namenode ,启动hadoop 

准备: ubuntu 12.04   hadoop 1.1.2

装机阶段:

一、安装ubuntu 12.04  (PC或虚拟机均可)

二、安装jdk 

$ sudo apt-get install openjdk-6-jdk 

3、安装好之后,可通过下面命令查看,说明安装成功 

$ java -version 

java version "1.6.0_27"

OpenJDK Runtime Environment (IcedTea6 1.12.3) (6b27-1.12.3-0ubuntu1~12.04.1)

OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

三、安装hadoop-1.1.2 

1、将hadoop-1.1.2.tar.gz复制到usr下面(也可mv命令) 

$ sudo cp Downloads/hadoop-1.1.2.tar.gz /usr 

2、进入到usr目录下,解压hadoop-1.1.2.tar.gz 

$ cd /usr/ 

$ sudo tar -xzf hadoop-1.1.2.tar.gz 

3、为了方便管理,将解压后的文件夹名改为hadoop 

   $ sudo mv hadoop-1.1.2 hadoop 

四、创建一个名为hadoop的用户和用户组 

1、创建一个名为hadoop的用户组 

   $ sudo addgroup hadoop 

2、创建一个名为hadoop的用户,归到hadoop用户组下 

   $ sudo adduser --ingroup hadoop hadoop 

注1:前一个hadoop为用户组名,后面的是用户名,之所以名字一样是为了方便统一管理 

注2:执行后会有一些信息需要填写,可以不填,都敲回车,用系统默认的即可,一共5个

3、用gedit打开etc下的sudoers文件 

   $ sudo gedit /etc/sudoers 

4、在 root ALL=(ALL) ALL 下面添加如下一行,然后保存关闭gedit 

    hadoop ALL=(ALL) ALL 

配置阶段: 

一、配置环境变量 

1、用gedit打开etc下的profile文件 

$ sudo gedit /etc/profile 

2、在文件最后加入如下几行 

export CLASSPATH=.:/usr/lib/jvm/java-6-openjdk-amd64/lib:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib:$CLASSPATH

export PATH=.:/usr/lib/jvm/java-6-openjdk-amd64/bin:/usr/lib/jvm/java-6-openjdk-amd64/jre/bin:/usr/hadoop/bin:$PATH

 注1:在win中环境变量的值是以“;”号隔开的,而这里是“:” 

注2:等号后面有个“.”别丢了,它表示当前目录 

3、保存后关闭gedit,并重启机器 

   $ sudo reboot 

4、重启后用hadoop用户登录,验证配置是否成功 

   $ java -version  (此语句执行后如显示了jdk版本的话说明配置成功,如果没有则需检查profile中路径是否正确) 

注:最好是用hadoop用户登录,因为以下步骤都是以此为前提的 

二、创建ssh-key 

1、确保网络通畅,然后装载ssh服务 

   $ sudo apt-get install openssh-server 

  注:如果此语句执行失败且结果为“....包被占用”的话,那么应该是ubuntu的“更新管理器”正在后台更新,关闭更新。

2、生成密钥

$ ssh-keygen -t rsa 

3、设置免密钥登陆

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3、进入.ssh目录,执行$ssh localhost

$ cd /home

$ ssh localhost 

注1: ssh密钥默认保存在/home/hadoop/.ssh里面,.ssh文件是隐藏文件,需要Ctrl+h才能见到。

注2:如果执行ssh localhost后,遇到这样的错误:

hadoop@ubuntu:~$ ssh localhost

ssh: connect to host localhost port 22: Connection refused

方法是:再安装一遍SSH

$ sudo apt-get install openssh-server 

三、配置hadoop 

1、进入到hadoop目录下,配置conf目录下的hadoop-env.sh中的JAVA_HOME 

   $ cd /usr/hadoop 

   $ sudo gedit conf/hadoop-env.sh 

(打开后在文档的上部某行有“#export JAVA_HOME=......”字样的地方,去掉“#”,然后在等号后面填写你的jdk路径,完全按此文档来的话应改为 " export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 " ) 

2、配置conf目录下的core-site.xml 

  $ sudo gedit conf/core-site.xml 

打开后标签<configuration> </configuration>中是空的,所以在空的地方加入如下配置:

Xml代码

1. <property>

2.        <name>fs.default.name</name>

3.        <value>hdfs://localhost:9000</value>

4. </property>

5.   

6.  <property>

7.        <name>dfs.replication</name>

8.        <value>1</value>

9. </property>

10.   

11. <property>

12.        <name>hadoop.tmp.dir</name>

13.        <value>/home/hadoop/tmp</value>

14. </property>

<property>

       <name>fs.default.name</name>

       <value>hdfs://localhost:9000</value> 

</property>

 <property>

       <name>dfs.replication</name>

       <value>1</value> 

</property>

<property> 

       <name>hadoop.tmp.dir</name>

       <value>/home/hadoop/tmp</value> 

</property>

  

 3、配置conf目录下的mapred-site.xml 

    $ sudo gedit conf/mapred-site.xml 

打开后标签<configuration> </configuration>中也是空的,添加如下配置: 

Xml代码

1. <property>

2.       <name>mapred.job.tracker</name>

3.       <value>localhost:9001</value>

4.  </property>

<property> 

      <name>mapred.job.tracker</name> 

      <value>localhost:9001</value>

 </property> 

运行测试阶段:

一、格式化namenode (首次运行必需格式化) 

1、先进入hadoop目录 

   $ cd /usr/hadoop

2、格式化namenode 

   $ hadoop namenode -format 

二、启动hadoop 

1、修改hadoop文件夹的权限,保证hadoop用户能正常访问其中的文件 

$ sudo chown -hR hadoop /usr/hadoop 

2、启动hadoop 

$ bin/start-all.sh 

3、验证hadoop是否正常启动 

$ jps 

(此语句执行后会列出已启动的东西NameNode,JobTracker,SecondaryNameNode...如果NameNode没有成功启动的话就要先执行"bin/stop-all.sh"停掉所有东西,然后重新格式化namenode,再启动,我的电脑里面显示:

2627 TaskTracker

2407 SecondaryNameNode

2477 JobTracker

3552 Jps

2250 DataNode

2089 NameNode