集群中有两个NameNode,两个ResourceManager。实现了NameNode的HA方案以及ResourceManager单点故障的解决。
Hadoop的HA介绍:hadoop2中的NameNode有两个。每一个都有相同的职能。一个是active状态的,一个是standby状态的。当集群运行时,只有active状态的NameNode是正常工作的,standby状态的NameNode是处于待命状态的,时刻同步active状态NameNode的数据。一旦active状态的NameNode不能工作,通过手工或者自动切换,standby状态的NameNode就可以转变为active状态的,就可以继续工作了。这就是高可靠。
Linux环境准备: VMware Workstation 12 PRO上CentOS 7 Minimal版安装配置 网络配置:使用桥接方式 1.设置固定IP地址和关闭防火墙虚拟机中必须添加如下配置: (必须和宿主机在同一网段)
在vmware的【编辑】-->【虚拟网络编辑器】设置:将网络连接方式设置为“桥接”,并桥接到宿主机器的网卡(可以是有线或者无线网络)。设置静态IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 ("eno16777736"这部分名字在不同版本中可能不一样)修改(添加)如下内容:
BOOTPROTO="static"#dhcp改为static ONBOOT="yes"#开机启用本配置 IPADDR=192.168.1.181#静态IP GATEWAY=192.168.1.1 #默认网关 NETMASK=255.255.255.0 #子网掩码 DNS1=192.168.1.1#DNS 配置总体示例:
cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 HWADDR="00:15:5D:07:F1:02" TYPE="Ethernet" BOOTPROTO="static" #dhcp改为static DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" UUID="bb3a302d-dc46-461a-881e-d46cafd0eb71" ONBOOT="yes" #开机启用本配置 IPADDR=192.168.1.181 #静态IP GATEWAY=192.168.1.1 #默认网关 NETMASK=255.255.255.0 #子网掩码 DNS1=192.168.1.1 #DNS 配置修改每台主机的主机名:
vi /etc/sysconfig/network添加如下内容:
HOSTNAME=master01 //master02,master03........设置IP绑定:
vi /etc/hosts master01 192.168.1.181 master02 192.168.1.182 master03 192.168.1.186 master04 192.168.1.187 slave01 192.168.1.183 slave02 192.168.1.184 slave03 192.168.1.185重启网卡:
service network restartcentos7中mini安装的防火墙默认为firewalld:
systemctl stop firewalld systemctl mask firewalld安装iptables-services并关闭防火墙:
yum install iptables-services service iptables stop chkconfig iptables off #关闭防火墙开机启动 service ip6tables stop chkconfig ip6tables off关闭selinux:
vi /etc/sysconfig/selinux SELINUX=enforcing -> SELINUX=disabled setenforce 0 getenforce 2. 添加hadoop用户添加用户组:
root登录条件下: groupadd hadoop添加用户并分配用户组:
useradd -g hadoop hadoop修改密码:
passwd hadoop 3. SSH开机免密码登录:安装ssh:
yum intsall openssh-server首先是root用户免密码登录:
root用户登陆后在每台主机上面使用命令:
里面有两个文件:
id_rsa.pub id_rsa在master01主机上面:
mv id_rsa.pub authorized_keys然后把所有主机里面的id_rsa.pub内容全部保存到这个authorized_keys后把authorized_keys复制到各个节点上。
Hadoop用户ssh免密码登录同root用户:
注意:这时id_rsa.pub id_rsa的目录为你hadoop用户下的.ssh目录 4. 安装所需的软件所用的软件环境配置示例:
export JAVA_HOME=/usr/local/software/jdk1.8.0_66 export HADOOP_HOME=/usr/local/software/hadoop-2.7.0 export ZOOKEEPER_HOME=/usr/local/software/zookeeper-3.4.6/bin export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin然后使环境配置生效:
source /etc/profile 5. Hadoop HA实现Hadoop HA配置文件: // 总共5个:
hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xmlhadoop-env.sh:
export JAVA_HOME=/usr/local/software/jdk1.8.0_66core-site.xml:
<property> <name>fs.defaultFS</name> <value>hdfs://cluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/software/hadoop-2.7.0/tmp</value> </property> <property> <name>ha.zookeeper.quorum</name <value>slave01:2181,slave02:2181,slave03:2181</value> </property>