一.准备工作

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=1server.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 = 30000WATCHER::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. kafka 基础知识梳理及集群环境部署记录

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

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

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

  3. APACHE-TOMCAT集群环境部署

    APACHE-TOMCAT集群环境部署 -----------------–Shanks ---------------------------------------- 本集群不涉及session同 ...

  4. zookeeper集群安装部署

    zookeeper集群安装部署 1:规划:     集群建议至少在三台服务器上部署     192.168.1.171     192.168.1.172     192.168.1.173 2:去各 ...

  5. SUSE11 Oracle11gR2 RACASM双机集群环境部署

    Oracle RAC集群环境部署 一. 安装前准备 (1) Linux系统版本 SUSE Linux Enterprise Server 11 (x86_64) (2) Oracle database ...

  6. 现学现用大数据分布式集群环境部署

    导读:        随着大数据时代的到来,传统的GIS分析工具越来越难以满足对超大体量空间数据的分析需求.SuperMap iServer 9D(本文简称iServer)实现了地理信息服务的分布式集 ...

  7. HBase集群环境部署

    HBase官方网站: http://hbase.apache.org/ 官网使用向导:http://hbase.apache.org/book.html 1.上传hbase安装包: 版本:hbase- ...

  8. Pinpoint 集群环境部署

    前期准备 节点准备 本次节点列表如下: Ip Hostname 角色 192.168.2.131 pinpointNode1 hbase master节点:NameNode:pinpoint coll ...

  9. redis 集群环境部署

    集群环境 • 在 6 台主机上做如下配置,并运行 redis 服务 yum -y install gcc gcc-c++ tar -zxvf redis-4.0.8.tar.gz cd redis-4 ...

最新文章

  1. synchronized能不能保证有序性??
  2. python中全局变量和局部变量关键字_Python中全局变量和局部变量的理解与区别
  3. leetcode1277. 统计全为 1 的正方形子矩阵(dp)
  4. leetcode —— 区间加法
  5. 面试官问你Java内存区域你用new创建对象来解释
  6. php获取当前页面地址代码,PHP获取当前页面URL地址程序代码
  7. Android 查看应用MD5签名最简单的方法
  8. Win10秘笈:两种方式修改网卡物理地址(MAC)
  9. 【一年总结】记我的大二生活
  10. 单词前缀dia/dis/duo/en/epi/eu等衍生单词(辅助记忆)
  11. matlab脉宽调制pwm,脉宽调制matlab仿真
  12. 风格迁移篇--StarGAN:用于多域图像到图像翻译的统一生成对抗网络
  13. 静态库与动态库的区别(转)
  14. Ubuntu 18.04将语言改为中文(简体)
  15. 小米 11 ultra旗舰版官方原版ROM系统MIUI12所有固件
  16. [题解]bzoj2152 聪聪可可
  17. 2019年8月13日 星期二 本周计划
  18. 闲鱼客服工具/消息管理系统:可以让客服放下手机,在电脑上管理闲鱼店铺的咨询信息
  19. 【阿里云高校计划】视觉AI-身份证识别系统搭建
  20. Easy File Sharing Server7.2漏洞复现

热门文章

  1. vue 背景透明度_一款媒体小白喜爱的视频编辑软件,vue视频编辑APP,想学就来...
  2. 你所不知道的Android Studio调试技巧
  3. 2020.12.15
  4. php使用file,PHP中is_file()函数使用指南
  5. SpringBoot--HelloWord
  6. 子元素超出了父元素的高度_T恤定制融入中国元素,美出新高度
  7. SSH免密登录详细操作步骤
  8. java 正则匹配 sql星号,18. 正则表达式:开头、结尾、任意一个字符、星号和加号匹配...
  9. 群晖备份linux分区,黑群晖二合一系统无损扩充系统分区方法补充
  10. 在 Linux 命令行中使用 tcpdump 抓包