一、前言
Hadoop集群与hadoop伪分布式的区别就是伪分布式是单机版的,而集群是多台机器共同协作。
我们学习中先来搭建一个3台主机的集群,一个namenode,三个datanode。
二、环境准备
我们可以准备三台真实的主机或者用工具搭建三台虚拟服务器。我搭建的是虚拟服务器,需要的软件如下:
1.一台主机(内存足够大,不然稍卡)。
2.CentOS-6.5-i386-minimal.iso,迷你的centos系统,无操作界面。
3.VirtualBox_5.0.24.8355_Win.exe,搭建虚拟机的工具。
接着我们就可以搭建虚拟主机了,我们搭建三台主机名为hadoop1,hadoop2,hadoop3的主机,接着我们需要配置静态ip、主机名与ip映射等linux服务器基本需要具备的条件。
1.修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop3 修改hostname即可
GATEWAY=10.2.6.254
exit退出重新登陆或者重启计算机使其生效。
2.配置ip
如果不是在装机时配置,则只需配置静态、ip地址、网关和DNS即可,配置之后,重启网络连接。service network restart
DEVICE=eth0 设备名称
TYPE=Ethernet
UUID=25534add-89d2-4167-9fd3-05881829f2da
ONBOOT=yes 开机连接?
NM_CONTROLLED=yes
BOOTPROTO=static 静态
HWADDR=08:00:27:96:CD:B0
IPADDR=10.2.6.89 ip地址
PREFIX=24
GATEWAY=10.2.6.254 网关
DNS1=10.1.28.25 DNS
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
3.配置ip和主机名的映射
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.2.6.132 hadoop1
10.2.6.182 hadoop2
10.2.6.89 hadoop3
添加本机的计算机ip和主机名以及集群的其他机器的ip和主机名对应,以便它们之间识别。
三、搭建jdk环境
原料:jdk-7u65-linux-i586.tar.gz
1.创建文件夹 mkdir /usr/software
2.将jdk和hadoop解压到software文件夹下
tar -zxvf jdk-7u65-linux-i586.tar.gz /usr/software
tar -zxvf hadoop-2.4.1.tar.gz /usr/software
3.配置jdk
vi /etc/profile,在最后添加这两行
JAVA_HOME=/usr/software/jdk1.7.0_65
export JAVA_HOME
4.验证
java
java -version
四、搭建hadoop环境
1.配置5个重要的配置文件:hadoop-env.sh、hdfs-site.xml mapred-site.xml.template yarn-site.xml core-site.xml
2.配置项跟伪分布式相同,不同的是:
hdfs文本数量可以改为2或者3
3.slaves文件中是管理本集群的datanode节点的,如果salves有三个主机名或者ip的话,那么代表这个集群有三台主机,所以我们必须配置slaves文件。
hadoop1
hadoop2
hadoop3
如果配的是主机名那么这些主机名必须互相识别。
4.将配置好的software下的文件夹scp拷贝到其他主机
scp -r /usr/software/ root@hadoop1:/root/software/
意思是将本机software下的文件拷贝到hadoop1主机的root用下的software文件下
5.配置hadoop环境变量
vi /etc/profile
JAVA_HOME=/usr/software/jdk1.7.0_65
CLASSPATH=.:/usr/software/jdk1.7.0_65/jre/lib/rt.jar
export HADOOP_HOME=/usr/software/hadoop-2.4.1
PATH=.:/usr/software/jdk1.7.0_65/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME PATH CLASSPATH
6.格式化namenode
hadoop namenode -format
7.关闭集群所有主机的防火墙
service iptables stop
chkconfig iptables off
8.查看10.2.6.132的50070端口,即集群页面。
datanode节点情况:
namenode节点情况;
五、配置免密登陆
如果你有A、B、C三台主机,那么应该
A-->B配置免密
A-->C配置免密
B-->A配置免密
B-->C配置免密
C-->A配置免密
C-->B配置免密