hadoop 集群HA高可用搭建以及问题解决方案

hadoop 集群HA高可用搭建

目录大纲

1. hadoop HA原理 2. hadoop HA特点 3. Zookeeper 配置 4. 安装Hadoop集群 5. Hadoop HA配置

搭建环境

环境版本地址地址
CentOS   6.5 64x   点击下载  
hadoop   2.5.1   点击下载  
Zookeeper   3.4.5   点击下载  
Hadoop Ha配置   null   点击下载  
null   null   null  
ch01   192.168.128.121   NN DN RM  
ch02   192.168.128.122   NN DN NM  
ch03   192.168.128.123   DN NM  
Hadoop HA原理

hadoop 集群HA高可用搭建以及问题解决方案

在一个典型的HA集群中,每个NameNode是一台独立的服务器。在任一时刻,只有一个NameNode处于active状态,另一个处于standby状态。其中,active状态的NameNode负责所有的客户端操作,standby状态的NameNode处于从属地位,维护着数据状态,随时准备切换。

hadoop 集群HA高可用搭建以及问题解决方案

hadoop 集群HA高可用搭建以及问题解决方案

两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了,如图3所示。

Hadoop Ha特点 Zookeeper 配置

1)配置zoo.cfg(默认是没有zoo.cfg,将zoo_sample.cfg复制一份,并命名为zoo.cfg)

[root@ch01 conf]# vi /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/conf/zoo.cfg # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. # the port at which the clients will connect clientPort=2181 dataDir=http://www.likecs.com/opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data dataLogDir=http://www.likecs.com/opt/hadoop/zookeeper-3.4.5-cdh5.6.0/logs server.1=ch01:2888:3888 server.2=ch02:2888:3888 server.3=ch03:2888:3888 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # #sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1

2)将zookeeper从ch01复制到ch02,ch03机器上

scp -r /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/ root@ch02:/opt/hadoop/ scp -r /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/ root@ch03:/opt/hadoop/

3)在ch01 02 c03中创建/opt/Hadoop/zookeeper-3.4.5-cdh5.6.0/data目录下创建myid文件,内容为zoo.cfg中server.x所配置的数字

ch01=1 ch02=2 ch03=3

命令:

[root@ch01 ~]# mkdir /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data //创建目录 [root@ch01 ~]# echo 1 > /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data/myid //使用脚本命令 echo 写入 [root@ch01 ~]# ssh ch02 //登录ch02机器 Last login: Mon Feb 20 03:15:04 2017 from 192.168.128.1 [root@ch02 ~]# mkdir /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data //创建目录 [root@ch02 ~]# echo 2 > /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data/myid //使用脚本命令 echo 写入 [root@ch02 ~]# exit //退出ch02机器节点 logout Connection to ch02 closed. [root@ch01 ~]# ssh ch03 //登录ch02机器 Last login: Sun Feb 19 16:13:53 2017 from 192.168.128.1 [root@ch03 ~]# mkdir /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data //创建目录 [root@ch03 ~]# echo 3 > /opt/hadoop/zookeeper-3.4.5-cdh5.6.0/data/myid //使用脚本命令 echo 写入 [root@ch03 ~]# exit //退出ch02机器节点 安装Hadoop集群

需要修改的文件配置

1. core-site.xml 2. hadoop-env.sh 2. hdfs-site.xml 3. mapred-site.xml 4. yarn-site.xml 5. slaves

core-site.xml

<configuration> <property> <!-- 配置 hadoop NameNode ip地址 ,由于我们配置的 HA 那么有两个namenode 所以这里配置的地址必须是动态的--> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <!-- 整合 Zookeeper --> <name>ha.zookeeper.quorum</name> <value>ch01:2181,ch02:2181,ch03:2181</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/tmp/</value> </property> </configuration>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzxzp.html