Hadoop分布式HA的安装部署
前言
单机版的Hadoop环境只有一个namenode,一般namenode出现问题,整个系统也就无法使用,所以高可用主要指的是namenode的高可用,即存在两个namenode节点,一个为active状态,一个为standby状态。如下图:
说明如下:
HDFS的HA,指的是在一个集群中存在两个NameNode,分别运行在独立的物理节点上。在任何时间点,只有一个NameNodes是处于Active状态,另一种是在Standby状态。 Active NameNode负责所有的客户端的操作,而Standby NameNode用来同步Active NameNode的状态信息,以提供快速的故障恢复能力。
为了保证Active NN与Standby NN节点状态同步,即元数据保持一致。除了DataNode需要向两个NN发送block位置信息外,还构建了一组独立的守护进程”JournalNodes”,用来同步FsEdits信息。当Active NN执行任何有关命名空间的修改,它需要持久化到一半以上的JournalNodes上。而Standby NN负责观察JNs的变化,读取从Active NN发送过来的FsEdits信息,并更新自己内部的命名空间。一旦ActiveNN遇到错误,Standby NN需要保证从JNs中读出了全部的FsEdits,然后切换成Active状态。
使用HA的时候,不能启动
SecondaryNameNode,会出错。
集群的规划
ip 基本的软件 运行的进程 uplooking01 jdk、zk、hadoop NameNode、zkfc、zk、journalNode uplooking02 jdk、zk、hadoop NameNode、zkfc、zk、journalNode、datanode、ResourceManager、NodeManageruplooking03 jdk、zk、hadoop zk、journalNode、datanode、ResourceManager、NodeManager
zookeeper集群搭建
1、解压:[uplooking@uplooking01 ~]$ tar -zxvf soft/zookeeper-3.4.6.tar.gz -C app/2、重命名[uplooking@uplooking01 ~]$ mv app/zookeeper-3.4.6 app/zookeeper 3、配置文件重命名 [uplooking@uplooking01 zookeeper]$ cp conf/zoo_sample.cfg conf/zoo.cfg 4、修改配置文件$ZOOKEEPER_HOME/conf/zoo.cfg dataDir=/home/uplooking/app/zookeeper/data dataLogDir=/home/uplooking/logs/zookeeper server.101=uplooking01:2888:3888 server.102=uplooking02:2888:3888 server.103=uplooking03:2888:3888 启动server表示当前节点就是zookeeper集群中的一个server节点 server后面的.数字(不能重复)是当前server节点在该zk集群中的唯一标识 =后面则是对当前server的说明,用":"分隔开, 第一段是当前server所在机器的主机名 第二段和第三段以及2818端口 2181--->zookeeper服务器开放给client连接的端口 2888--->zookeeper服务器之间进行通信的端口 3888--->zookeeper和外部进程进行通信的端口 5、在dataDir=/home/uplooking/app/zookeeper/data下面创建一个文件myid uplooking01机器对应的server.后面的101 uplooking02机器对应的server.后面的102 uplooking03机器对应的server.后面的103 6、需要将在uplooking01上面的zookeeper拷贝之uplooking02和uplooking03,这里使用scp远程拷贝 scp -r app/zookeeper uplooking@uplooking02:/home/uplooking/app scp -r app/zookeeper uplooking@uplooking03:/home/uplooking/app 在拷贝的过程中需要设置ssh免密码登录 在uplooking02和uplooking03上面生成ssh密钥 ssh-keygen -t rsa 将密钥拷贝授权文件中 uplooking02: ssh-keygen -t rsa ssh-copy-id -i uplooking@uplooking02 uplooking03: ssh-keygen -t rsa ssh-copy-id -i uplooking@uplooking03 uplooking01: ssh-copy-id -i uplooking@uplooking03 7、修改myid文件 [uplooking@uplooking02 ~]$ echo 102 > app/zookeeper/data/myid [uplooking@uplooking03 ~]$ echo 103 > app/zookeeper/data/myid 8、同步环境变量文件 [uplooking@uplooking01 ~]$ scp .bash_profile uplooking@uplooking02:/home/uplooking/ [uplooking@uplooking01 ~]$ scp .bash_profile uplooking@uplooking03:/home/uplooking/ 9、启动 在1、2、3分别执行zkServer.sh start
Hadoop分布式HA的部署
1、解压[uplooking@uplooking01 ~]$ tar -zvxf soft/hadoop-2.6.4.tar.gz -C app/2、重命名[uplooking@uplooking01 ~]$ mv app/hadoop-2.6.4/ app/hadoop 3、修改配置文件 hadoop-env.sh、yarn-env.sh、hdfs-site.xml、core-site.xml、mapred-site.xml、yarn-site.xml、slaves 1°、hadoop-env.sh export JAVA_HOME=/opt/jdk 2°、yarn-env.sh export JAVA_HOME=/opt/jdk 3°、slaves uplooking02 uplooking03 4°、hdfs-site.xml