集群搭建环境:

发行版:CentOS-6.6 64bit

内核:2.6.32-504.el6.x86_64

CPU:intel-i7 3.6G

内存:2G

集群搭建步骤:

1. 确保机器安装了jdk

[root@rocket ~]# java -version

openjdk version "1.8.0_51"

OpenJDK Runtime Environment (build 1.8.0_51-b16)

OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)

如果找不到jdk,可以通过yum进行安装,如果发行版不是CentOS,请自行搜索对应发行版的安装方法。

[root@rocket local]# yum -y install java

2. 下载zookeeper,选一个合适的版本

在官网http://zookeeper.apache.org/releases.html找一个合适的镜像进行下载。这里使用北理的镜像进行下载。

[root@rocket local]#  \

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

下载完成之后分别解压到

[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server1

[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server2

[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server3

3. 拷贝配置文件

[root@rocket local]# cd /usr/local/zookeeper-server1/;cp conf/zoo_sample.cfg conf/zoo_test.cfg

[root@rocket local]# cd /usr/local/zookeeper-server2/;cp conf/zoo_sample.cfg conf/zoo_test.cfg

[root@rocket local]# cd /usr/local/zookeeper-server3/;cp conf/zoo_sample.cfg conf/zoo_test.cfg

4. 修改配置文件

zookeeper-server1

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

dataDir=/tmp/zookeeper-server1/data

dataLogDir=/tmp/zookeeper-server1/logs

# the port at which the clients will connect

clientPort=2181

server.1=127.0.0.1:8880:7770

server.2=127.0.0.1:8881:7770

server.3=127.0.0.1:8882:7770

zookeeper-server2

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

dataDir=/tmp/zookeeper-server2/data

dataLogDir=/tmp/zookeeper-server2/logs

# the port at which the clients will connect

clientPort=3181

server.1=127.0.0.1:8880:7770

server.2=127.0.0.1:8881:7770

server.3=127.0.0.1:8882:7770

zookeeper-server3

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

dataDir=/tmp/zookeeper-server3/data

dataLogDir=/tmp/zookeeper-server3/logs

# the port at which the clients will connect

clientPort=4181

server.1=127.0.0.1:8880:7770

server.2=127.0.0.1:8881:7770

server.3=127.0.0.1:8882:7770

5. 建立zookeeper运行目录,data目录和log目录

[root@rocket local]# mkdir -p zookeeper-server1/logs zookeeper-server1/data

[root@rocket local]# mkdir -p zookeeper-server2/logs zookeeper-server2/data

[root@rocket local]# mkdir -p zookeeper-server3/logs zookeeper-server3/data

查看当前运行目录情况:

[root@rocket tmp]# tree

├── zookeeper-server1

│   ├── data

│   └── logs

├── zookeeper-server2

│   ├── data

│   └── logs

└── zookeeper-server3

├── data

└── logs

6. 在data目录中创建文件 myid 文件,每个文件中分别写入当前机器的server id

[root@rocket tmp]# echo "1" > zookeeper-server1/data/myid

[root@rocket tmp]# echo "2" > zookeeper-server2/data/myid

[root@rocket tmp]# echo "3" > zookeeper-server3/data/myid

7. 在每个目录中启动zookeeper

[root@rocket local]# cd /usr/local/zookeeper-server1/;bin/zkServer.sh start

[root@rocket local]# cd /usr/local/zookeeper-server2/;bin/zkServer.sh start

[root@rocket local]# cd /usr/local/zookeeper-server3/;bin/zkServer.sh start

查看启动状态

[root@iZ257w5531qZ bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

注意,这里如果提示

Error contacting service. It is probably not running.

说明进程启动失败或集群未建立成功,这时需要查看对应目录中的zookeeper.out日志去找到相应的原因并去解决它。

8. 测试连接zookeeper集群

[root@rocket local]# cd zookeeper-server1;bin/zkCli.sh -server localhost:2181

可以看到这里已经连接成功了,而且能查看节点情况,说明zookeeper集群已经开始工作了。

参考:zookeeper集群搭建    zookeeper配置详解

 
 

【zookeeper】 zookeeper 集群搭建的更多相关文章

  1. 分享知识-快乐自己:zookeeper 伪集群搭建

    1):单一 zookeeper  搭建步骤 2):zookeeper 伪集群搭建 1):新建一个集群目录 [root@zoodubbo opt]# mkdir zookeeper_cluster 2) ...

  2. zookeeper伪集群搭建

    zookeeper伪集群搭建 1. 下载zookeeper: https://zookeeper.apache.org/ 2. 解压: tar -zxvf zookeeper-3.4.14.tar.g ...

  3. Zookeeper分布式集群搭建

    实验条件:3台安装linux的机子,配置好Java环境. 步骤1:下载并分别解包到每台机子的/home/iHge2k目录下,附上下载地址:http://mirrors.cnnic.cn/apache/ ...

  4. 初始zookeeper与集群搭建实例

    zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...

  5. Zookeeper + Kafka 集群搭建

    第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...

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

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协 ...

  7. [dubbo实战] dubbo+zookeeper伪集群搭建 (转)

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一 个主控. ...

  8. 初识ZooKeeper与集群搭建实例

    原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...

  9. Zookeeper+ActiveMQ集群搭建

    搭建三台虚拟机安装centos7.要提前安装好jdk环境 1.环境准备,搭建三台虚拟机ip分别是 192.168.192.130 192.168.192.131 192.168.192.134 Zoo ...

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

    1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步索引库. a) Activemq b) 发送消息 c) 接收消息 2. 什么是So ...

随机推荐

  1. hdoj2571 命运

    命运 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  2. Django---ORM操作大全

    前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MyS ...

  3. Redis on Spark:Task not serializable

    We use Redis on Spark to cache our key-value pairs.This is the code: import com.redis.RedisClient va ...

  4. 基于python的接口测试框架设计(一)连接数据库

    基于python的接口测试框架设计(一)连接数据库 首先是连接数据库的操作,最好是单独写在一个模块里, 然后便于方便的调用,基于把connection连接放在__init__()方法里 然后分别定义D ...

  5. HttpClient 教程 (五)

    第五章 HTTP客户端服务 5.1 HttpClient门面 HttpClient接口代表了最重要的HTTP请求执行的契约.它没有在请求执行处理上强加限制或特殊细节,而在连接管理,状态管理,认证和处理 ...

  6. 【转】java中&和&&的区别和联系

    [转]http://www.cnblogs.com/hongten/p/hongten_java_yu.html 电路问题总结: 对于:&   -- >  不管怎样,都会执行" ...

  7. LeetCode: Intersection of Two Linked Lists 解题报告

    Intersection of Two Linked Lists Write a program to find the node at which the intersection of two s ...

  8. tomcat8源码之架构解析

    Catalina:与开始/关闭shell脚本交互的主类,因此如果要研究启动和关闭的过程,就从这个类开始看起. Server:是整个Tomcat组件的容器,包含一个或多个Service. Service ...

  9. 用JS的正则表达式如何判断输入框内为中文或者是英文

    1.只能输入数字和英文的: <input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clip ...

  10. C/C++捕获段错误,打印出错的具体位置(精确到哪一行)_转

    转自:C/C++捕获段错误,打印出错的具体位置(精确到哪一行) 修订:2013-02-16 其实还可以使用 glibc 的 backtrace_symbols 函数,把栈帧各返回地址里面的数字地址翻译 ...