zookeeper 伪集群搭建

简介
Zookeeper 是 一个分布式。开放源码的分布式应用程序协调服务,是Google Chubby的一个开源实现,大多数的分布式应用都需要Zookeeper的支持,这篇文章先简单的和大家分享如何搭建一个zookeeper集群。(笔者注:Chubby是一个lock service,通过这个lock service可以解决分布式中的一致性问题。为这个lock service的实现是一个分布式的文件系统。

环境: 由于我是用自己的笔记本做实验,所以就用了一台虚拟机;其实和真实的差不多;也就配置有些许不同。
这是我的虚拟机版本

步骤
第一步:在你的虚拟机上安装JDK/JRE ;
第二步:下载zookeeper:http://mirrors.hust.edu.cn/apache/zookeeper/
这边下载版本的需要注意了。3.4.6 和3.4.8+ 是有区别的,后面具体说一下,建议下载3.4.8+。
第三步:创建相关目录,解压zk 目录和日志目录。
mkdir /tools/zookeeper/zookeeper-3.4.6/server1
mkdir /tools/zookeeper/zookeeper-3.4.6/server2
mkdir /tools/zookeeper/zookeeper-3.4.6/server3
mkdir /data/dataLogs/zookeeper/s1
mkdir /data/dataLogs/zookeeper/s2
mkdir /data/dataLogs/zookeeper/s3


第四步:上传安装包到服务器到 server1 目录;
第五步: 解压使用 “tar -xzvf zookeeper-3.4.8.tar.gz “来 解压安装包 。
解压后的目录如下:
zookeeper 解压目录

第五步:修改zookeeper配置文件(集群和数据目录的配置)
使用“cp zoo_sample.cfg zoo.cfg”来创建一个zookeeper配置文件,在zoo.cfg中配置syncLimit,dataDir,clientPort,autopurge.purgeInterval,以及集群的server list

这几个参数主要是注意一下:
dataDir zk 的放置一下数据的目录如版本号,id 等等,所以每一个节点都区分一下如,/data/dataLogs/zookeeper/s1;

clientPort 接受客户端请求的端口,每个节点都需要不一样。如:2181

server.X 这个数字就是对应 data/myid中的数字。你在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3就OK了。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中第一个端口用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。

具体的文件,我会附在附件中。

好了,现在一个节点已经配置好了,其他就使用cp 命令直接复制到server2 ,server3 下;主要需要更改clientPort dataDir.

第六步: 创建myid 文件,分别在dataDir 设置的目录下创建myid,里面内容填写server.X 中的X 就好,比如我上面写的1,2,3;

到这一步之后基本就完成了配置,现在我们来启动看看。

使用命令 :
./zkServer.sh start

./ zkServer.sh status

好了已经启动。已经成功了!

注意:如果你是第一启动,看到日志里面报错类似下面的:

 [myid:2] - WARN  [WorkerSender[myid=2]:[email protected]] - Cannot open channel to 3 at election address /127.0.0.1:3890
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:341)
    at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:449)
    at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:430)
    at java.lang.Thread.run(Thread.java:745)

不要担心,这个只是其他节点没有开启,它在尝试连接而已。把其他节点都启动了,就可以了。

下面讲一下我在部署伪集群过程出的错,真的是郁闷死了。。

我刚开始下载的3.4.6 版本的zk ,下载后也是按照上述的步骤配置后,一直报:

Error: Could not find or load main class org.apache.zookeeper.server.quorum.

一直说找不到这类,开始我还以为是jdk 版本的问题,但是我想也不对啊。这类明显是zk 自己的啊,我就去目录下找了一下;发现3.4.6 目录加压后是没有lib 和 zookeeper-3.4.x.jar.

所以如果你下载的是3.4.6以下的版本的,需要手动加,火车票在服务器上下载这些资源。

原文地址:http://blog.51cto.com/13952955/2176170

时间: 2024-10-08 17:55:40

zookeeper 伪集群搭建的相关文章

[dubbo实战] dubbo+zookeeper伪集群搭建

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协调器或者控制器来管理物理分布的子进程.目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用.伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用.所以说zookeeper是分布式应用的协作服务. 二.zookeeper的工作原理 核心

zookeeper伪集群搭建

下载地址:http://mirror.bit.edu.cn/apache/zookeeper/ yum install telnet -y -y 不再提示 全部选择yes 1.解压三个zk文件夹分别为 zk8081 zk80822.zk2181: mkdir data mkdir logs touch /daata/myid 写入1zk2182: mkdir data mkdir logs touch /daata/myid 写入2zk2183: mkdir data mkdir logs to

ZooKeeper伪集群环境搭建

1.从官网下载程序包. 2.解压. [[email protected] software]$ tar xzvf zookeeper-3.4.6.tar.gz 3.进入zookeeper目录后创建data目录. [[email protected] software]$ cd zookeeper-3.4.6 [[email protected] software]$ mkdir data [[email protected] software]$ cd data [[email protecte

win10环境下搭建zookeeper伪集群

一.下载zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里笔者下载的是zookeeper-3.3.6 二.配置zookeeper 1.解压到三个目录 我们想要在单机上搭建3个server的伪集群,需要将下载好的zookeeper压缩包解压到三个目录下.笔者的目录如下: server1 : F:\paths\zookeeper\server1\zookeeper-3.3.6 server2 : F:\paths\z

1.2 Zookeeper伪集群安装

1.2  Zookeeper伪集群安装 zookeeper单机安装配置可以查看 1.1 zookeeper单机安装 1.复制三份zookeeper,分别为zookeeper-3.4.7-node1,zookeeper-3.4.7-node2,zookeeper-3.4.7-node3 2.修改每个zookeeper文件夹下的配置文件 大部分配置与单机相同,核心为server的配置 server.1=localhost:2887:3887 server.2=localhost:2888:3888

ZooKeeper单机伪集群搭建与启动

下载解压 [[email protected] ~]$ tar -zvxf zookeeper-3.4.9.tar.gz 本机ip地址映射 [[email protected] /]$ su - rootPassword: Last login: Sat Aug 4 18:59:38 EDT 2018 on :0 [[email protected] ~]# cd /etc [[email protected] etc]# vim hosts 将本机ip映射为一个主机名,在zoo.cfg中可用这

初始zookeeper与集群搭建实例

zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如同步.配置维护和分集群或者命名的服务. zookeeper是一个由多个service组成的集群,一个leader,多个follower,每个server保存一份数据部分,全局数据一致,分布式读写,更新请求转发由leader实施. 更新请求顺序进行,来自同一个cl

dubbo+zookeeper伪集群配置

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协调器或者控制器来管理物理分布的子进程.目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用.伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用.所以说zookeeper是分布式应用的协作服务. 二.zookeeper的工作原理 核心

JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建、搜索功能切换到集群版、Activemq消息队列搭建与使用

1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步索引库. a) Activemq b) 发送消息 c) 接收消息 2. 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求. So