加入HA后的完全分布式集群搭建

节点规划表:

加入HA后的完全分布式集群搭建

新项目开始前先把原来的进行备份

加入HA后的完全分布式集群搭建

搭建步骤:

1. (Hadoop01Hadoop02相互免秘钥

Setup passphraseless ssh

Now check that you can ssh to the localhost without a passphrase:

  $ ssh localhost

If you cannot ssh to localhost without a passphrase, execute the following commands:

  $ ssh-****** -t dsa -P '' -f ~/.ssh/id_dsa
  $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

要想对别人免秘钥,上面三步是前提,必须要做

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

做完后就可以把公钥给hadoop01分发

加入HA后的完全分布式集群搭建

在hadoop01中追加

加入HA后的完全分布式集群搭建

验证免秘钥是否成功

加入HA后的完全分布式集群搭建

2.这个时候统一配置hadoop02 hadoop03 hadoop04的环境变量:

(1)配置hdfs-site.xml

<!--指定hdfsnameservicemycluster,需要和core-site.xml中的保持一致 -->

<property>

  <name>dfs.nameservices</name>

  <value>mycluster</value>

</property>

<!-- mycluster下面有两个NameNode,分别是nn1nn2 -->

<property>

  <name>dfs.ha.namenodes.mycluster</name>

  <value>nn1,nn2</value>

</property>

<!-- nn1RPC通信地址 -->

<property>

  <name>dfs.namenode.rpc-address.mycluster.nn1</name>

  <value>hadoop01:8020</value>

</property>

<!-- nn2RPC通信地址 -->

<property>

  <name>dfs.namenode.rpc-address.mycluster.nn2</name>

  <value>hadoop02:8020</value>

</property>

<!-- nn1http通信地址 -->

<property>

  <name>dfs.namenode.http-address.mycluster.nn1</name>

  <value>hadoop01:50070</value>

</property>

<!-- nn2http通信地址 -->

<property>

  <name>dfs.namenode.http-address.mycluster.nn2</name>

  <value>hadoop02:50070</value>

</property>

<!-- 指定NameNodeedits元数据在JournalNode上的存放位置 -->

<property>

  <name>dfs.namenode.shared.edits.dir</name>

  <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/mycluster</value>

</property>

<!-- 指定JournalNode在本地磁盘存放数据的位置 -->

<property>

  <name>dfs.journalnode.edits.dir</name>

  <value>/var/hadoop/ha/jn</value>

</property>

 

<!-- 配置失败自动切换实现方式 -->

<property>

  <name>dfs.client.failover.proxy.provider.mycluster</name>

  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->

<property>

  <name>dfs.ha.fencing.methods</name>

  <value>sshfence</value>

</property>

<!-- 使用sshfence隔离机制时需要ssh免登陆 -->

<property>

  <name>dfs.ha.fencing.ssh.private-key-files</name>

  <value>/root/.ssh/id_dsa</value>

</property>

 

<!-- 开启NameNode失败自动切换 -->

<property>

   <name>dfs.ha.automatic-failover.enabled</name>

   <value>true</value>

 </property>

 

 

(2)配置core-site.xml

 

<configuration>

<!-- 指定hdfsnameservicemycluster -->

<property>

<name>fs.defaultFS</name>

  <value>hdfs://mycluster</value>

</property>

<!-- 指定hadoop临时目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/var/hadoop/zk</value>

</property>

 

<!-- 指定zookeeper地址 -->

<property>

   <name>ha.zookeeper.quorum</name>

   <value>hadoop02:2181,hadoop03:2181,hadoop04:2181</value>

</property>

</configuration>

 加入HA后的完全分布式集群搭建

3)修改完这两个文件然后分发给hadoop02-04

加入HA后的完全分布式集群搭建

3.hadoop02-04安装并启动zookeeper

加入HA后的完全分布式集群搭建

(1)将解压后的文件移动

加入HA后的完全分布式集群搭建

(2)配置环境变量:

加入HA后的完全分布式集群搭建

(3)配置好后,需要修改zoo_sample.cfg文件,先备份。

加入HA后的完全分布式集群搭建

(4)配置zoo.cfg文件:

默认的保存目录不安全所以修改:

加入HA后的完全分布式集群搭建

配置三台zookeeper节点

加入HA后的完全分布式集群搭建

(5)给zookeepermyid设置不同的数值

加入HA后的完全分布式集群搭建

(6)把部署好的zookeeper进行对hadoop03-04两个zookeeper节点分发

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

(7)对hadoop03-04设置myid

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

(8)hadoop03-hadoop04环境变量配置

加入HA后的完全分布式集群搭建

重新加载

加入HA后的完全分布式集群搭建

(9)启动hadoop02zookeeper

加入HA后的完全分布式集群搭建

(10)再启动hadoop03hadoop04,发现hadoop03leaderhadoop02-04follower

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

4.启动JNhadoop01-03

加入HA后的完全分布式集群搭建

使用jps命令查看

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

可以看到JournalNode进程已启动

5.第一台NN

hdfs namenode format

hadoop-daemon.sh start namenode

另一台NN

hdfs namenode  -bootstrapStandby

hadoop01

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

hadoop02

加入HA后的完全分布式集群搭建

6.格式化ZK

hdfs zkfc -formatZK

加入HA后的完全分布式集群搭建

7.启动集群

hadoop01:

加入HA后的完全分布式集群搭建

8.浏览器验证 hadoop01:50070

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

hadoop02:50070

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

在hadoop01节点创建目录/user/root目录

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

上传文件,并自定义block块为1MB

加入HA后的完全分布式集群搭建

加入HA后的完全分布式集群搭建

9.验证高可用

(1)杀死主NameNode

加入HA后的完全分布式集群搭建

一刷新hadoop01:50070

加入HA后的完全分布式集群搭建

再刷新hadoop02:50070

加入HA后的完全分布式集群搭建