1)VMware虚拟机(使用的是VMware Workstation 10)
2)Centos(使用的是Centos7)
3)jdk(使用jdk-7u51-linux-x64.gz)
4)Xshell(使用Xshell5,用于在window下远程连接虚拟机中的centos)
5)WinSCP(用于window与虚拟机中的centos传文件)
6)hadoop(使用hadoop-1.2.1)
ping 192.168.20.x #该测试是以IP在192.168。20网段作为测试
ping www.baidu.com #该测试是验证是否能够连接外网
tar -zxvf jdk-7u51-linux-x64.gz
mv jdk1.7.0_51 /usr/java/
配置Java的环境变量,输入以下命令:
vi /etc/profile
并添加以下三条环境变量语句:
重新加载配置文件,输入以下命令:
source /etc/profile
其他节点也完成对java环境的配置。
vi /etc/hosts
注意:其他DataNode中也要添加NameNode中的IP
tar -zxvf hadoop-1.2.1.tar.gz
ln -sf /root/hadoop-1.2.1 /home/hadoop-1.2
修改hadoop.tmp.dir属性值的原因:如果不设置该属性,默认就会在Linux下的tmp目录创建新的目录,但是tmp目录下的内容重启之后就会消失。并且很多hadoop的目录都会依赖该目录。该属性值在core-default.html文件中可以找到。
②hdfs-site.xml
这是设置副本存放的数量,默认值是3。但是此次环境搭建只有两个DataNode节点,所以要设置为2。
③slaves
这是设置具体的DataNode,填写主机名或者IP地址皆可。
④master
这是设置具体的SecondaryNode, 填写主机名或者IP地址皆可。
⑤hadoop-env.sh
文件中找到JAVA_HOME,并设置为java环境变量配置的JAVA_HOME值。
4)免密码登录
在每一个节点生成密钥,并将公钥内容复制到文本内容中,实现登录自己免密码的功能。输入以下语句:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub
将node1的公钥发送到node2和node3上,输入以下语句:
scp id_dsa.pub root@node2:~
scp id_dsa.pub root@node3:~
在node2和node3上将node1发送过来的公钥复制到指定的文件,输入以下语句:
cat id_dsa.pub >> ~/.ssh/authorized_keys
在node1中将hadoop的压缩包发送到node2和node3上,输入以下语句:
scp -r ~/hadoop-1.2.1.tar.gz root@node2:~
scp -r ~/hadoop-1.2.1.tar.gz root@node3:~
在node2和node3中解压并软链接hadoop(方法同node1)
在node1中进入/home/hadoop-1.2/conf/将hadoop所有配置文件复制到node2和node3上
scp ./* root@node2:/home/hadoop-1.2/conf/
scp ./* root@node3:/home/hadoop-1.2/conf/
centos7默认使用firewall作为防火墙
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开机启动
firewall-cmd --state #查看防火墙状态
查看selinux状态:sestatus
在/etc/selinux/config中关闭selinux
7)在node1中启动HDFS
在node1中进入/home/hadoop-1.2/bin输入以下命令:
./start-dfs.sh