完全分布式搭建需要三台机器:node1、node2和node3
搭建时间之前首先要保持时间一致:date
ntpdate
yum install ntpdate
ntpdate -u ntp.sjtu.edu.cn
date
如果时间不能设置,可以使用以下命令:rdate -s time-b.timefreq.bldrdoc.gov(能使三台主机时间一致)
jdk也要配置好;
三台防火墙全部关掉:service iptables stop
1.解压hadoop-2.5.1_x64.tar到根目录下:
tar -zvxf hadoop-2.5.1_x64.tar.gz
2.选三台虚拟机node1、node3分别为namenode、secondnamenode,node2为datanode
3.在home下新建install目录
4.ln -sf /root/hadoop-2.5.1 /home/install/hadoop-2.5(创建链接)
5.cd /home/install/hadoop-2.5(进入hadoop-2.5目录)
6.对根目录下的.bash_profile文件进行编辑,即添加一下两行:
export HADOOP_HOME=/home/install/hadoop-2.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
7.执行source ~/.bash_profile命令
8.只在第一台上ping一下:
ping node1
ping node2
ping node3
9.三台虚拟机进行公钥、私钥的配置
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
然后对node1根目录里的.ssh里删除know_hosts:rm -rf know_hosts
10.将产生的公钥追加到authorized_keys里,然后查看authorized_keys里的内容
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
more authorized_keys
再将公钥通过网络传递到其它两台虚拟机里的/opt的目录下:
scp ~/.ssh/id_dsa.pub root@node2:/opt/
scp ~/.ssh/id_dsa.pub root@node3:/opt/
11.在其它两台虚拟机里进行node1里的公钥的追加:
cat /opt/id_dsa.pub >>authorized_keys
more authorized_keys
12.最后在node1中:ssh node2 和 ssh node3,看是否能免密码登录
13.将.bash_profile里的配置文件通过网络复制到node2和node3里
scp ~/.bash_profile root@node2:~/
scp ~/.bash_profile root@node3:~/
14.分别编辑三个文件:hadoop-env.sh、core-site.xml、hdfs-site.xml,再新建两个文件:masters(node3)和slaves(node1 node2 node3)
export JAVA_HOME=/usr/java/jdk1.7.0_79
15.在node2、node3里:source ~/.bash_profile
scp -r /home/install/hadoop-2.5 root@node2:/home/install
scp -r /home/install/hadoop-2.5 root@node3:/home/install
16.格式化:hdfs namenode -format
17.cd /opt/hadoop-2.5/dfs/name/
cd current/
start-dfs.sh
只在node1上启动start-dfs.sh就可以启动集群,是因为前面设置了免密码登录,启动node1的同时,也远程登录了node2和node3。
18.在浏览器里输入http://node1:50070,若出现如下页面则搭建成功: