一.准备工作

1. 下载zookeeper,下载地址:https://zookeeper.apache.org/releases.html#download 
2. 下载CentOS7的镜像,下载地址:https://www.centos.org/download/
3. 准备XManager,用于远程连接Linux,我用的是CentOS7.
4. 准备VMVare Workstation,安装好3台以上(至少3台才能集群)CentOS75. 设置好CentOS的JDK,本人使用的是最新的JDK8

二. Zookeeper部署

说明:该教程是在一个机器上部署的,请求1-5步完成后,重复在其他机器上进行操作.1. 将下载好的 zookeeper-3.4.10.tar.gz(我当前版本) 通过XFTP上传到Linux的指定目录,假设为 ZK_HOME 2. 在ZK_HOME中解压zookeeper
tar -zxvf zookeeper-3.4.10.tar.gz

3. 在ZK_HOME的conf目录中,复制zookeeper的配置为zoo.cfg(zk启动时候默认的配置文件)

cd /ZK_HOME
cp zoo_sample.cfg zoo.cfg
---如果是单机环境部署,可以直接通过此命令启动.
---ZK的启动参数有: {start|start-foreground|stop|restart|status|upgrade|print-cmd}
./zkServer.sh start

4. 在ZK_HOME的conf目录的zoo.cfg的最后添加如下配置:

server.1=192.168.100.10:2888:3181
server.2=192.168.100.11:2888:3181
server.3=192.168.100.12:2888:3181

说明:
a. 2888表示follower节点与leader节点交换信息的端口号b. 3181是在leader节点挂掉后,进行leader选举需要的端口.本步骤完成后,zoo.cfg的结果如下所示

# 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
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 server.1=192.168.100.10:2888:3181
server.2=192.168.100.11:2888:3181
server.3=192.168.100.12:2888:3181

5. 在ZK_HOME的zoo.cfg中有一个

dataDir=/tmp/zookeeper

此时需要在该指定目录下创建myid文件,其中的文件内容为zoo.cfg最后部分的配置获取.获取规则:假设本机ip为192.168.100.10 那么此时的myid文件中只有一行内容各位1

cd /tmp
mkdir /zookeeper
vim myid
---通过vim设置myid

6. 启动启动ZK跳转到ZK的bin目录下,然后运行

-- 启动zookeeper
./zkServer.sh start
-- 查看运行状态
./zkServer.sh status
7. 连接zookeeper,其中连接端口为2181 
zkCli.sh -server 192.168.100.10:2181,192.168.100.11:2181,192.168.100.12:2181
如果连接成功可以看到如下信息
2017-08-19 01:48:03,042 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
2017-08-19 01:48:03,057 [myid:] - INFO [main:Environment@100] - Client environment:host.name=localhost
2017-08-19 01:48:03,057 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_144
2017-08-19 01:48:03,075 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2017-08-19 01:48:03,076 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/java/jdk1.8.0_144/jre
2017-08-19 01:48:03,076 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/lcf-tools/zookeeper-3.4.10/bin/../build/classes:/lcf-tools/zookeeper-3.4.10/bin/../build/lib/*.jar:/lcf-tools/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/lcf-tools/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/lcf-tools/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/lcf-tools/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/lcf-tools/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/lcf-tools/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/lcf-tools/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/lcf-tools/zookeeper-3.4.10/bin/../conf:
2017-08-19 01:48:03,079 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-08-19 01:48:03,080 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2017-08-19 01:48:03,080 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2017-08-19 01:48:03,081 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2017-08-19 01:48:03,081 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2017-08-19 01:48:03,081 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-514.26.2.el7.x86_64
2017-08-19 01:48:03,082 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2017-08-19 01:48:03,082 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2017-08-19 01:48:03,082 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/lcf-tools/zookeeper-3.4.10/conf
2017-08-19 01:48:03,087 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=192.168.100.10:2181,192.168.100.11:2181,192.168.100.12:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1a86f2f1
2017-08-19 01:48:03,195 [myid:] - INFO [main-SendThread(192.168.100.10:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server 192.168.100.10/192.168.100.10:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
JLine support is enabled
2017-08-19 01:48:03,746 [myid:] - INFO [main-SendThread(192.168.100.10:2181):ClientCnxn$SendThread@876] - Socket connection established to 192.168.100.10/192.168.100.10:2181, initiating session
[zk: 192.168.100.10:2181,192.168.100.11:2181,192.168.100.12:2181(CONNECTING) 0] 2017-08-19 01:48:04,093 [myid:] - INFO [main-SendThread(192.168.100.10:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 192.168.100.10/192.168.100.10:2181, sessionid = 0x15df975935c0000, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null

三. 补充内容

0. zookeeper目录中各个文件的认识
bin目录
zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。
conf目录
配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。
lib
zk依赖的包。
contrib目录
一些用于操作zk的工具包。
1. 如果不想每次zookeeper都跳转到zk的bin目录,则可以将bin目录加入全局path中.注意第3行和第5行末尾

2. zookeeper启动后会在bin目录生成一个zookeeper.out的日志文件,可以通过tail指令进行查看

如果觉得麻烦,还可以直接通过添加指令的形式一起启动进行查看:

3. zoo.cfg配置文件解读

4. 启动后提示  java.net.NoRouteToHostException:No route to host 该问题为找不到路由,防火墙没有关闭.

---------------------------------------------------------------
Ubuntu(ubuntu-12.04-desktop-amd64)
查看防火墙状态:ufw status
关闭防火墙:ufw disable
---------------------------------------------------------------
centos6.0
查看防火墙状态:service iptables status
关闭防火墙:chkconfig iptables off #开机不启动防火墙服务
--------------------------------------------------------------
centos7.0(默认是使用firewall作为防火墙,如若未改为iptables防火墙,使用以下命令查看和关闭防火墙)
查看防火墙状态:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
5. 提示 Address aready in use ,该问题应该是端口被占用,通过如下指令查看端口占用:
-----查看端口占用------
方法一 lsof -i:端口号
方法二 netstat -tunlp|grep 端口号
-----杀掉进程---------
推荐方法 kill -s 9 3382 其中9为尽快杀掉进程的意思 3382为pid















(个人)Zookeeper集群环境部署的更多相关文章

  1. zookeeper集群环境安装配置

    众所周知,Zookeeper有三种不同的运行环境,包括:单机环境.集群环境和集群伪分布式环境 在此介绍的是集群环境的安装配置 一.下载: http://apache.fayea.com/zookeep ...

  2. kafka 基础知识梳理及集群环境部署记录

    一.kafka基础介绍 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特 ...

  3. Centos7下ELK+Redis日志分析平台的集群环境部署记录

    之前的文档介绍了ELK架构的基础知识,日志集中分析系统的实施方案:- ELK+Redis- ELK+Filebeat - ELK+Filebeat+Redis- ELK+Filebeat+Kafka+ ...

  4. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解

    centos6.5环境下Zookeeper-3.4.6集群环境部署 [系统]Centos 6.5 集群部署 [软件]准备好jdk环境,此次我们的环境是open_jdk1.8.0_101 zookeep ...

  5. MySQL+MGR 单主模式和多主模式的集群环境 - 部署手册 (Centos7.5)

    MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.MGR是MySQL官方在5.7.17版本引进的一个数据库高可用与 ...

  6. Mongodb副本集+分片集群环境部署记录

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  7. [转]ZooKeeper 集群环境搭建 (本机3个节点)

    ZooKeeper 集群环境搭建 (本机3个节点) 是一个简单的分布式同步数据库(或者是小文件系统) ------------------------------------------------- ...

  8. zookeeper集群环境搭建详细图文教程

    zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...

  9. Mongodb副本集+分片集群环境部署

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

随机推荐

  1. Python序列解包

    元组的序列解包range对象的序列解包迭代对象的序列解包列表的序列解包字典的序列解包序列解包与遍历序列解包的其它用法 元组的序列解包 x,y,z = (1,2,3) print(x,y,z) 1 2 ...

  2. 20172302 《Java软件结构与数据结构》第九周学习总结

    2018年学习总结博客总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 教材学习内容总结 第十五章 图 1.图:图(graph)是由一些点(vertex)和这些点之间的连 ...

  3. 【织梦dedecms系统安全】完善DEDECMS目录的权限安全设置

    [织梦dedecms系统安全]完善DEDECMS目录的权限安全设置:   ../ [站点上级目录]   如果要使用后台的目录相关的功能需要有列出目录的权限     / [站点根目录]   需要执行和读 ...

  4. shutdown vs close

    shutdown 和 close关闭tcp连接的介绍网上有很多,主要区别如下: 1.调用close后,将中止通信.删除套接字.丢弃数据.但是,注意喽,但是,如果有多个进程共享一个套接字,close每被 ...

  5. RouterOS配置静态IP上网/RouterOS做为二级路由上网

    说明:这里只展示关键步骤. -1.lan口的设置以及dhcp服务器的这些设置这里省略,参考:https://www.cnblogs.com/EasonJim/p/9589714.html 0.设置网卡 ...

  6. Java知识回顾 (5)数组、日期与时间, StringBuffer和StringBuilder

    一.数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. dataType[] arrayRefVar; // 首选的方法 或 dataType arra ...

  7. [Android Pro] Android P版本 新功能介绍和兼容性处理(三)Android Studio 3.0 ~ 3.2 其他特性

    cp : https://blog.csdn.net/yi_master/article/details/80067198 1:JAVA8特性支持 1)Base64.java 在升级到as3.0之后, ...

  8. [C++] const与重载

    下面的两个函数构成重载吗? void M(int a){} //(1) void M(const int a){} //(2) 下面的呢? void M(int& a){} //(3) voi ...

  9. 机器学习算法中的偏差-方差权衡(Bias-Variance Tradeoff)

    简单的以下面曲线拟合例子来讲: 直线拟合后,相比原来的点偏差最大,最后一个图完全拟合了数据点偏差最小:但是拿第一个直线模型去预测未知数据,可能会相比最后一个模型更准确,因为最后一个模型过拟合了,即第一 ...

  10. 原创:vsphere概念深入系列五:存储

    1.vSphere支持的存储文件格式: 类似于linux下挂载文件系统,需要有驱动器设备,驱动. 挂载后有挂载路径. vSphere 也是一样处理. 挂载名:挂载后可以给存储设备起名,默认为datas ...