高可用完全分布式搭建

高可用的完全分布式搭建

HA HDFS结构图

高可用完全分布式搭建_第1张图片

这种设计模式的特点:

①采用了两个namenode,一个对外提供服务,一个同步备份namenode元数据以待切换,防止发生异常,导致namenode挂掉。
②所有的datenode同时向两个NameNode汇报数据块信息。
③JN集群用于备份传递ANN的信息和文件
④两个NN,启动时一个会处于activity,一个会处于standby状态
⑤处于standby状态的节点,用于备份和完成edits.log文件的合并,并产生新的image,推送回处于actiity状态的NN

两种切换模式

①手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合
②自动切换:基于Zookeeper实现

Zookeeper自动切换方案

①ZooKeeper Failover Controller:监控NameNode健康状态
②并向Zookeeper注册NameNode
③NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁的NameNode变为active

JN权值分配

选举规则:大于半数以上,则获得选举权

HA HDFS配置节点表

高可用完全分布式搭建_第2张图片

集群搭建步骤

配置免密登录

node01->node01  
node01->node02  
node01->node03 
node01->node04
node02->node01

配置所有节点的JDK

修改hdfs-site.xml配置文件


 		    dfs.nameservices
 		    mycluster


  			dfs.ha.namenodes.mycluster
 			 nn1,nn2


 			 dfs.namenode.rpc-address.mycluster.nn1
  			node01:8020


 			 dfs.namenode.rpc-address.mycluster.nn2
 			 node02:8020


 			 dfs.namenode.http-address.mycluster.nn1
 			 node01:50070


			  dfs.namenode.http-address.mycluster.nn2
 			  node02:50070


 		 	  dfs.namenode.shared.edits.dir
 		      qjournal://node01:8485;node02:8485;node03:8485/mycluster


  			  dfs.journalnode.edits.dir
 			  /var/sxt/hadoop/ha/jn


  		dfs.client.failover.proxy.provider.mycluster  		
  		org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider


 		 dfs.ha.fencing.methods
 		 sshfence


  		  dfs.ha.fencing.ssh.private-key-files
  		  /root/.ssh/id_rsa


  		  dfs.ha.automatic-failover.enabled
   		  true
 

修改core-site.xml配置文件


	 fs.defaultFS
 	 hdfs://mycluster


    hadoop.tmp.dir
    /var/abc/hadoop/cluster


	ha.zookeeper.quorum
    node02:2181,node03: 2181,node04:2181

修改slaves配置文件

node02 
node03 
node04

将配置好的HDFS安装包拷贝到node02 node03 node04

格式化NameNode(创建目录以及文件)

① 在node01、node02、node03分别执行如下命令

hadoop-daemon.sh start journalnode

② 随机选择一台NameNode执行:

hdfs namenode -format
hadoop-daemon.sh start namenode

③ 另外一台NameNode节点执行:

hdfs namenode  -bootstrapStandby

格式化ZKFC

hdfs zkfc -formatZK

关闭所有节点上的进程

stop-dfs.sh

启动HDFS

start-dfs.sh

搭建zookeeper集群

1,解压

2,修改conf目录下的zoo_sample.cfg的名称,改为zoo.cfg

mv zoo_sample.cfg zoo.cfg

3,修改zoo.cfg

dataDir=/var/zfg/zookeeper
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888

4,在dataDir目录下创建一个myid文件,在这个文件中写上当前节点ID号
5,将配置好的zookeeper安装包拷贝到node03 node04
6,拷贝完毕后,在各自节点上创建myid号,ID号要依次递增

你可能感兴趣的:(大数据学习笔记)