安装Zookeeper集群

Zookeeper集群的安装教程

安装前说明:

1、 zookeeper对内存的消耗比较大,在安装zookeeper的时候要安装在内存比较大的机器中。

2、 zookeeper安装需要是基数台机器,因为zookeeper默认半数以上(不包含半数)的机器正常运行时正常使用,低于半数(不包含半数)就不能正常使用,试想偶数台机器肯定会出现等于半数的情况。

例:

当有四台机器组成的zookeeper集群,宕机一台,剩下三台大于半数可用,宕机两台,剩下两台,非半数以上,zookeeper集群不可用。

当有三台机器组成的zookeeper集群,宕机一台,剩下两台大于半数可用,宕机两台,剩下一台非半数以上,zookeeper集群不可用。

由此可以看出四台zookeeper集群和三台zookeeper集群效果一样,宕机两台,集群均会废掉,用四台还浪费资源,对不对,最佳实践就是用三台机器,总结的来说就是用基数台机器。

3、 下面将安装三台机器的zookeeper,分别为slave1、slave2、slave3,只演示一台,其他安装相同,安装Hadoop的时候可以多台机器一键启动,这里zookeeper只能逐台手动启动

安装步骤:

1、 切换到hadoop用户,上传zookeeper安装包

2、 解压安装包,重命名解压后的目录

[plain] view plain copy
 
  1. [hadoop@slave1 ~]$ tar -zxvfzookeeper-3.4.5.tar.gz  
  2. [hadoop@slave1 ~]$ mv zookeeper-3.4.5zookeeper  

 

3、 修改环境变量

切换回到root用户

[plain] view plain copy
 
  1. [root@slave1 ~]# vim /etc/profile  


打开profile文件,配置zookeeper的环境变量

[plain] view plain copy
 
  1. ZOOKEEPER_HOME=/home/hadoop/zookeeper  
  2. export PATH=$PATH:$ZOOKEEPER_HOME/bin  



重新编译profile文件

[plain] view plain copy
 
  1. [root@slave1 ~]# source /etc/profile  


配置、编译完成后切换到hadoop用户

4、 修改zookeeper配置文件

进入zookeeper配置文件目录conf:

[plain] view plain copy
 
  1. [hadoop@slave1 ~]$ cd zookeeper/conf  


目录下有一个zoo_sample.cfg文件,将该文件改名为zoo.cfg,在文件的最后添加下面的内容:

[plain] view plain copy
 
  1. dataDir=/home/hadoop/zookeeper/data  
  2. dataLogDir=/home/hadoop/zookeeper/log  
  3. server.1=slave1:2888:3888  
  4. server.2=slave2:2888:3888  
  5. server.3=slave3:2888:3888  



5、 回到zookeeper安装目录,创建上一步配置的data和log目录,并给目录755权限:

[plain] view plain copy
 
  1. [hadoop@slave1 zookeeper]$ mkdir -m 755 data  
  2. [hadoop@slave1 zookeeper]$ mkdir -m 755 log  


6、 进入data目录,创建一个myid文件,并在文件内写入该台机器对应的id:

在第四步的配置中已经设置了slave1机器的id为1,slave2的机器为2,slave3的机器为3,现在我们配置的是slave机器,自然是在slave1中添加一个1,没有整个文件就一个字符“1”;

[plain] view plain copy
 
  1. [hadoop@slave1 zookeeper]$ cd data  
  2. [hadoop@slave1data]$ touch myid  
  3. [hadoop@slave1 data]$ vim myid  


到此为止slave1中的zookeeper就安装成功了,按同样的步骤安装另外几台机器。

这里教大家一个技巧slave1中安装好并配置好了zookeeper,可以直接将安装好的zookeeper发送到其余的机器中,使用scp命令。

[plain] view plain copy
 
  1. scp –r /home/hadoop/zookeeper hadoop@slave2:/home/hadoop  


这样就可以将slave1中安装好的zookeeper发送到slave2机器中了,记得这里发送完成后要到slave2机器中将myid文件中的1改为slave2对应的id,这里为2.切换到root用户在添加zookeeper和重新编译一下profile文件。

slave3机器也相同,不赘述。

7、 到此位置3台机器中的zookeeper都已经安装结束。快动手开始自动集群。集群启动结束记得使用jps命令查看一下zookeeper是否正常启动。

slave1机器:

[plain] view plain copy
 
  1. [hadoop@slave1conf]$ zkServer.sh start  
  2. JMXenabled by default  
  3. Usingconfig: /home/hadoop/zookeeper/bin/../conf/zoo.cfg  
  4. Startingzookeeper ... /home/hadoop/zookeeper/bin/zkServer.sh: line 103: [:/tmp/zookeeper: binary operator expected  
  5. STARTED  
  6. [hadoop@slave1conf]$ jps  
  7. 1642QuorumPeerMain  
  8. 1668 Jps  
  9. [hadoop@slave1 conf]$  


slave2机器:

[plain] view plain copy
 
  1. [hadoop@slave2data]$ zkServer.sh start  
  2. JMXenabled by default  
  3. Usingconfig: /home/hadoop/zookeeper/bin/../conf/zoo.cfg  
  4. Startingzookeeper ... /home/hadoop/zookeeper/bin/zkServer.sh: line 103: [:/tmp/zookeeper: binary operator expected  
  5. STARTED  
  6. [hadoop@slave2data]$ jps  
  7. 1649 Jps  
  8. 1618QuorumPeerMain  
  9. [hadoop@slave2 data]$  


slave3机器:

[plain] view plain copy
 
  1. [hadoop@slave3data]$ zkServer.sh start  
  2. JMXenabled by default  
  3. Usingconfig: /home/hadoop/zookeeper/bin/../conf/zoo.cfg  
  4. Startingzookeeper ... /home/hadoop/zookeeper/bin/zkServer.sh: line 103: [:/tmp/zookeeper: binary operator expected  
  5. STARTED  
  6. [hadoop@slave3data]$ jps  
  7. 1671 Jps  
  8. 1646 QuorumPeerMain  
  9. [hadoop@slave3 data]$  


好了,三台机器成功启动。大功告成!!!

原文地址:https://www.cnblogs.com/Leo_wl/p/7260190.html