装机阶段:安装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