目录

一,下载zookeeper 

1,从官网下载

2,从百度网盘下载

二,安装zookeeper

1, 解压

 2,创建数据目录

 3,修改配置文件

4,创建服务器id文件

 5,复制zookeeper文件到其他节点

6,启动zookeeper

7,查看启动状态

8,测试客户端连接


一般来说,我们是先安装好了Hadoop再去安装zookeeper的,如果没有安装过Hadoop的请跳转至这个文章进行配置:hadoop01--Hadoop伪分布式集群搭建_码到成龚的博客-CSDN博客 

如果就想要先安装zookeeper的话也是可以的,只是需要保证自己的虚拟机上有jdk,因为我们的zookeeper其实是用Java来进行编写的,因此就需要有jdk环境。 

如上,使用命令“java -version”后有jdk的版本信息显示出来,代表我们的虚拟机上是有jdk的,如果没有也请参考:hadoop01--Hadoop伪分布式集群搭建_码到成龚的博客-CSDN博客

 按照目录找到:

一,下载zookeeper 

1,从官网下载

Apache ZooKeeper

并不是版本越新越好,我们最主要的还是考虑该版本的组件和其他大数据平台之间的兼容性以及所使用到的环境的兼容性(比方说,现在我们使用的jdk为1.8的,但是我们却下载了最新版的zookeeper,那么就会导致我们的zookeeper最后启动失败)。因此这里推荐去下载zookeeper3.4.×的。

2,从百度网盘下载

因为现在最新版本是3.7.×,一般来说软件都是最新版的比较容易下载,但是再老一些的版本相对来说下载要麻烦一些,所以我们可以直接点击如下网盘链接去下载:

链接: https://pan.baidu.com/s/1BfOmudtzo9DhItqzROLzww      提取码: b967

下载好后的文件如下,我们不需要在windows环境下对其进行解压,只需要上传到我们的Linux上,然后在虚拟机里面进行解压即可。

二,安装zookeeper

1, 解压

接下来我们开始解压/opt/modules目录下的zookeeper文件到/opt/softwares目录下 

[HadoopColony@hadoop1 softwares]$ ll
total 453576
-rw-rw-r--. 1 HadoopColony HadoopColony 243900138 Sep  5 19:41 hadoop-2.8.2.tar.gz
-rw-rw-r--. 1 HadoopColony HadoopColony 185515842 Sep  5 12:03 jdk-8u144-linux-x64.tar.gz
-rw-rw-r--. 1 HadoopColony HadoopColony  35042811 Sep  6 18:07 zookeeper-3.4.10.tar.gz
[HadoopColony@hadoop1 softwares]$ tar -zxf zookeeper-3.4.10.tar.gz -C /opt/modules
[HadoopColony@hadoop1 softwares]$ cd ../modules/
[HadoopColony@hadoop1 modules]$ ll
total 12
drwxr-xr-x. 11 HadoopColony HadoopColony 4096 Sep  5 21:04 hadoop-2.8.2
drwxr-xr-x.  8 HadoopColony HadoopColony 4096 Jul 22  2017 jdk1.8.0_144
drwxr-xr-x. 10 HadoopColony HadoopColony 4096 Mar 23  2017 zookeeper-3.4.10

 2,创建数据目录

[HadoopColony@hadoop1 modules]$ cd /opt/modules/zookeeper-3.4.10   --到zookeeper的安装目录
[HadoopColony@hadoop1 zookeeper-3.4.10]$ ls
bin        dist-maven       lib                   README.txt            zookeeper-3.4.10.jar.asc
build.xml  docs             LICENSE.txt           recipes               zookeeper-3.4.10.jar.md5
conf       ivysettings.xml  NOTICE.txt            src                   zookeeper-3.4.10.jar.sha1
contrib    ivy.xml          README_packaging.txt  zookeeper-3.4.10.jar
[HadoopColony@hadoop1 zookeeper-3.4.10]$ mkdir dataDir             --创建数据目录
[HadoopColony@hadoop1 zookeeper-3.4.10]$ ls
bin        dataDir          ivy.xml      README_packaging.txt  zookeeper-3.4.10.jar
build.xml  dist-maven       lib          README.txt            zookeeper-3.4.10.jar.asc
conf       docs             LICENSE.txt  recipes               zookeeper-3.4.10.jar.md5
contrib    ivysettings.xml  NOTICE.txt   src 

 3,修改配置文件

[HadoopColony@hadoop1 zookeeper-3.4.10]$ pwd   --获取到zookeeper的安装路径之后再配置文件的时候有用
/opt/modules/zookeeper-3.4.10 
[HadoopColony@hadoop1 zookeeper-3.4.10]$ cd conf   --一般配置文件都是放置在conf(configuration)里面
[HadoopColony@hadoop1 conf]$ ls
configuration.xsl  log4j.properties  zoo_sample.cfg 
[HadoopColony@hadoop1 conf]$ mv zoo_sample.cfg  zoo.cfg   --将zoo_sample.cfg改名为zoo.cfg
[HadoopColony@hadoop1 conf]$ vi zoo.cfg    --编辑zookeper的配置文件
[HadoopColony@hadoop1 conf]$ tail -8 zoo.cfg 
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#标识不同的zookeeper服务器
server.1=hadoop1:2888:3888    --添加三个zookeeper服务器
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

   1,     tickTime=2000  【基本事件单元,用来指示一个心跳的时长,以毫秒为单位,默认为2000】
        initLimit=5        【集群中follower角色的服务器初始化连接我们的leader服务器的,能够等待的最大心跳数(连接超时时长,默认10)】
        syncLimit=2     【我们及集群中的follower服务器与leader服务器之间发送消息以及请求/应答所能等待的最多心跳数】
        dataDir=/opt/modules/zookeeper-3.4.10/dataDir【存放zookeeper相关的存储数据目录】
        clientPort=2181     【客户端连接zookeeper服务器的端口】

2,添加zookeeper服务器遵循的语法:server.id=host:port1:port2(标识不同的zookeeper服务器)
        【id   (1~255) 集群中的值是唯一的】
        【port1      leader的端口(该服务器作为leader供follower连接的端口)】
        【port2   选举端口(选举leader服务器时供其他端口连接的端口)】

 

 如上我们修改了两个地方后,保存退出。

4,创建服务器id文件

[HadoopColony@hadoop1 zookeeper-3.4.10]$ vi dataDir/myid
[HadoopColony@hadoop1 zookeeper-3.4.10]$ cat dataDir/myid 
1
[HadoopColony@hadoop1 zookeeper-3.4.10]$ 

 修改好后主节点服务器的id后,接下来我们需要将zookeeper文件复制到其他节点,然后修改其他节点上的id

 5,复制zookeeper文件到其他节点

[HadoopColony@hadoop1 zookeeper-3.4.10]$ cd /opt/modules/
[HadoopColony@hadoop1 modules]$ scp -r zookeeper-3.4.10/ HadoopColony@hadoop2:/opt/modules/
[HadoopColony@hadoop1 modules]$ scp -r zookeeper-3.4.10/ HadoopColony@hadoop3:/opt/modules/


hadoop2: 

[HadoopColony@hadoop2 zookeeper-3.4.10]$ vi   dataDir/myid 
[HadoopColony@hadoop2 zookeeper-3.4.10]$ cat dataDir/myid 
2
[HadoopColony@hadoop2 zookeeper-3.4.10]$ 

  hadoop3:

[root@hadoop3 ~]# vi  /opt/modules/zookeeper-3.4.10/dataDir/myid 
[root@hadoop3 ~]# cat /opt/modules/zookeeper-3.4.10/dataDir/myid 
3
[root@hadoop3 ~]# 

6,启动zookeeper

zookeeper的启动和hadoop有点不同,不光主节点要启动,子节点也要分别启动

[HadoopColony@hadoop1 modules]$ cd zookeeper-3.4.10/
[HadoopColony@hadoop1 zookeeper-3.4.10]$ ls
bin        dataDir          ivy.xml      README_packaging.txt  zookeeper-3.4.10.jar
build.xml  dist-maven       lib          README.txt            zookeeper-3.4.10.jar.asc
conf       docs             LICENSE.txt  recipes               zookeeper-3.4.10.jar.md5
contrib    ivysettings.xml  NOTICE.txt   src                   zookeeper-3.4.10.jar.sha1
[HadoopColony@hadoop1 zookeeper-3.4.10]$ cd bin
[HadoopColony@hadoop1 bin]$ ll
total 36
-rwxr-xr-x. 1 HadoopColony HadoopColony  232 Mar 23  2017 README.txt
-rwxr-xr-x. 1 HadoopColony HadoopColony 1937 Mar 23  2017 zkCleanup.sh
-rwxr-xr-x. 1 HadoopColony HadoopColony 1056 Mar 23  2017 zkCli.cmd
-rwxr-xr-x. 1 HadoopColony HadoopColony 1534 Mar 23  2017 zkCli.sh
-rwxr-xr-x. 1 HadoopColony HadoopColony 1628 Mar 23  2017 zkEnv.cmd
-rwxr-xr-x. 1 HadoopColony HadoopColony 2696 Mar 23  2017 zkEnv.sh
-rwxr-xr-x. 1 HadoopColony HadoopColony 1089 Mar 23  2017 zkServer.cmd
-rwxr-xr-x. 1 HadoopColony HadoopColony 6773 Mar 23  2017 zkServer.sh
[HadoopColony@hadoop1 bin]$ ./zkServer.sh start

hadoop1: 

hadoop2: 

[HadoopColony@hadoop2 bin]$ ./zkServer.sh  start
ZooKeeper JMX enabled by default
Using config: /opt/modules/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[HadoopColony@hadoop2 bin]$ 

 hadoop3:

[HadoopColony@hadoop3 bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/modules/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[HadoopColony@hadoop3 bin]$ 

 如上,我们的三台虚拟机的zookeeper集群都启动成功了。

7,查看启动状态

如果我们想要知道当前使用的虚拟机是领导者还是随从者,那么我们可以使用命令:

./zkServer.sh status来进行查看

leader:

[HadoopColony@hadoop2 bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/modules/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[HadoopColony@hadoop2 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/modules/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
[HadoopColony@hadoop2 bin]$ 

 follower:

 follower:

8,测试客户端连接

[HadoopColony@hadoop1 bin]$ ./zkCli.sh -server hadoop2:2181
Connecting to hadoop2:2181
...
WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: hadoop2:2181(CONNECTED) 0] 

如果想要退出的话,可以使用ctrl+z 

如上,zookeeper的配置到此结束,如果有帮助的话点个免费的赞,有问题也请在评论区留言。 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐