搭建部分参考文章:http://www.cnblogs.com/luotianshuai/p/5206662.html

这篇博客分为四个部分:

>>>zookeeper简介

>>>虚拟机上zookeeper集群搭建

>>>Error contacting service. It is probably not running的问题解决

>>>简短的后言

一,zookeeper简介:

1>.以下是我见过比较生动的解释:

ZooKeeper---译名为“动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动 物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相互串门,或是相互厮杀,就需要动物园管理员按照动物的各种习性加以分类和管理,这样我们才能更加放心安全的观赏动物。

回到企业级应用系统中,随着信息化水平的不断提高,企业级系统变得越来越庞大臃肿,性能急剧下降,客户抱怨频频。拆分系统是目前我们可选择的解决系统可伸缩性和性能问题的唯一行之有效的方法。但是拆分系统同时也带来了系统的复杂性——各子系统不是孤立存在的,它们彼此之间需要协作和交互,这就是我们常说的分布式系统0。各个子系统就好比动物园里的动物,为了使各个子系统能正常为用户提供统一的服务,必须需要一种机制来进行协调——这就是ZooKeeper(动物园管理员)。

[原文出处丢失,请原创在评论区留言,尽快让我添加上!!!!!]

2>ZooKeeper的基本运转流程:(来自百度百科)

1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并follow选出的Leader。
3>所以,我们需要的步骤大致为:
安装必要文件  ------> 修改配置文件,通过ip来设置集群  ------>启动服务  ------> 验证

二:zookeeper集群搭建:

我是在三台虚拟机上搭建的,每一台虚拟机的配置为:

CentOS Linux release 7.3.1611 (Core)

内存2G,硬盘20G,64bit

1>安装必要文件:

安装java:

yum list java*

#列出所有可以安装或更新的java包

su

#进入管理员模式

#之后输入自己的管理员(root)密码,如果没有设置,可能是root,或是本机创建的第一个用户的密码

yum -y install java-1.8.0-openjdk*

#安装java

exit

#退出管理员模式,以防止错误的命令造成不可挽回的问题

2>构建zookeeper:

cd

#进入默认的路径

cd Deskop/

#进入桌面

mkdir zookPro

#在桌面创建文件夹zookPro,作为项目的根目录

cd zookPro/

#进入项目根目录中

mkdir zookeeper

#创建文件夹 zookeeper 作为存放 zookeeper 本体的文件夹

mkdir data

#创建data文件夹,作为存放快照的文件夹

mkdir log

#创建log文件夹,作为存放日志的文件夹

3>下载zookeeper:

cd zookeeper/

#进入zookeeper文件夹

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

#从互联网上下载zookeeper文件

tar -zxvf zookeeper-3.4.6.tar.gz

#解压文件

4>修改配置文件

cd zookper-3.4.6/conf/

#进入conf目录

cp zoo_sample.cfg zoo.cfg

#官方给了一个配置的模板 zoo_sample.cfg ,但是我们在实际使用时需要对它进行修改并重命名,这里直接复制模板,并改名为zoo.cfg

然后需要将虚拟机的管理页面设置三台虚拟机的网络适配器,将他们变为桥接模式:

之后在每一个虚拟机的centos系统的命令窗口输入:

ifconfig

#得到网络相关信息

如图,三台虚拟机得到三个不同的ip:

然后就可以对zoo.cfg进行编辑了:

vim zoo.cfg

#对 zoo.cfg 进行编辑

在进入界面后是输入键盘上的 a ,就可以进行编辑了:

可能不像用鼠标那么方便的进行操作,所以要耐心的进行编辑.

其中需要修改 dataDir ,添加 dataLogDir , server.1,server.2,server.3

最后的效果是:

图片不太清晰,下面给出具体的细节:

其中这些需要修改的数据也是因电脑而异的:

dataDir = /home/用户名/Desktop/zookPro/data

dataLogDir = /home/用户名/Desktop/zookPro/log

server.1 = 第一台虚拟机的ip地址:2888:3888

server.2 = 第二台虚拟机的ip地址:2888:3888

server.3 = 第三台虚拟机的ip地址:2888:3888

修改完成后在键盘上按下左上角 Esc ,然后输入 :(冒号),可以看到光标到了最下方,然后输入 wq

然后就退出了编辑模式.

5>然后再创建另一个文件:

cd ../../..

#退回到项目根目录

cd data

#进入data文件夹

vi myid

#创建 myid 文件(注意不要像Windows一样加一个后缀或是其他什么的)

然后进入文件编辑界面

同样,按下键盘的 a ,然后

在第一台虚拟机中输入 1

在第二台虚拟机中输入 2

在第三台虚拟机中输入 3

(ps : 其实与刚才server.1 中的 1是一个道理,如果当时是 server.Abc ,那这里需要输入Abc,但要注意ip地址不能绑定错误)

然后就搭建完成了,可以进行测试了.

cd ../

#进入项目根目录

cd zookeeper/zookeeper-3.4.6/bin/

#进入bin目录,准备启动

./zkServer.sh start

#启动

6>进行验证:

./zkServer.sh status

#检查服务器状态

如果出现下面的状态,则证明成功:

最后的Mode 可能是follower,也可能是leader

7>但是,如果出现以下问题,那么请看下一个部分.如果没有进行配置,一般会出现下面的问题.

三.Error contacting service. It is probably not running的问题解决

1>首先对每一台虚拟机都输入

su

#进入管理员状态

systemctl stop firewalld.service

#关闭防火墙

./zkServer.sh status

#检查服务器状态

如果此时成功了,那么Congratulations ! 之前的配置是正确的,只是需要做一个防火墙开启端口的操作.

2>因为之前每一个虚拟机在 zoo.cfg 中有如下配置:

可以看到,这里开放了3个端口2181,2888,3888,所以需要让防火墙打开这三个端口,每一个虚拟机都执行如下操作:

systemctl start firewalld.service

#首先打开防火墙

firewall-cmd --zone=public --add-port=2181/tcp --permanent

#打开2181端口

firewall-cmd --zone=public --add-port=2888/tcp --permanent

#打开2888端口

firewall-cmd --zone=public --add-port=3888/tcp --permanent

#打开3888端口

firewall-cmd --reload

#重启防火墙

注意要始终在 root管理员权限下进行操作,即红框中的标识符为 '#',如果是普通用户,标识符为 '$',是无法进行操作的,会提示权限不够.而升级为管理员权限的语句就是之前的

su

#获取管理员权限

后言:

之后就可以拥抱曙光了!其实小编我也是小白,距离我第一次接触linux才两天,现在就已经不用再查在线文档了,我也只是东学一点,西学一点,然后自己揉一揉,总结一下,搞出来的,希望大家与我一起努力呀,嘿哈!

Zookeeper集群搭建(涵盖命令详解)与Error contacting service. It is probably not running的问题解决相关推荐

  1. Zookeeper集群搭建(配置详解)

    软件环境准备: Linux服务器一台.三台.五台(2*n+1台): Java jdk 1.7: zookeeper 3.4.6版: 软件安装: 解压jdk.zookeeper文件到指定目录,执行命令t ...

  2. zookeeper环境搭建中的几个坑[Error contacting service. It is probably not running]的分析及解决

    Zookeeper简介 关于zk的介绍, zk的paxos算法, 网上已经有各位大神在写了, 本文主要写我在搭建过程中的几个极有可能遇到的坑. Zookeeper部署中的坑 坑之一 Error con ...

  3. java集群_Kafka多节点分布式集群搭建实现过程详解_java

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  4. zookeeper集群在线迁移(扩容)详解

    zk集群原理 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现. 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅.负载均衡.命 ...

  5. zookeeper集群配置与配置文件详解

    1.配置文件解读 tickTime=2000 //leader和follower之间心跳检测时间 initLimit=10 //初始化连接次数是10次,和第一个配置连在一起意思就是10*2000 20 ...

  6. 启动Zookeeper报错:Error contacting service. It is probably not running.

    目录 1.问题描述 2.解决问题 1.防火墙开启导致 2.端口被占用导致 1.问题描述 输入以下命令,启动Zookeeper ./zkServer.sh start   输出显示启动没有问题:  输入 ...

  7. 当zookeeper报错Invalid config, exiting abnormally,Error contacting service. It is probably not running

    配置版本 zookeeper-3.4.6 hadoop-2.7.7 jdk1.8/jdk8 centos7 当你启动zookeeper报错可以先试以下方法 或者Error contacting ser ...

  8. Zookeeper命令操作(初始Zookeeper、JavaAPI操作、分布式锁实现、模拟12306售票分布式锁、Zookeeper集群搭建、选举投票)

    Zookeeper命令操作(初始Zookeeper.JavaAPI操作.分布式锁实现.模拟12306售票分布式锁.Zookeeper集群搭建.选举投票) 1.初始Zookeeper Zookeeper ...

  9. zookeeper专题:zookeeper集群搭建和客户端连接

    文章目录 1. Zookeeper 集群模式介绍 2. zookeeper 集群搭建 3. 使用curate客户端连接zookeeper集群 1. Zookeeper 集群模式介绍 Zookeeper ...

最新文章

  1. 2.19 总结-深度学习-Stanford吴恩达教授
  2. python中的字符串是什么,一文秒懂Python中的字符串
  3. 科大星云诗社动态20210503
  4. 科大星云诗社动态20210823
  5. harbor-offline-installer-v2.1.0.tgz 分享
  6. php dingo和jwt,dingo配合laravel、JWT使用
  7. 固定 顶部_一楼小院想建阳光房?固定的怕违建,那这样可伸缩的阳光房怎么样...
  8. linux内核udp校验和计算函数,Linux 内核IP和UDP检验和计算
  9. [Fanly Submit V4.1]WordPress插件普通收录
  10. Google Java Style:Google的Java编程规范
  11. 科创板第二批受理名单公布,为何AI独角兽 “全军覆没”?
  12. 嵌入式软件开发笔试面试知识点总结-操作系统部分
  13. 虎牙直播怎么换html5,虎牙直播助手怎么改名字 昵称更换方法
  14. 「镁客·请讲」小库科技何宛余:用人工智能去更高效的协助建筑设计工作
  15. gtx660 linux驱动下载,佳能 NVIDIA GeForce GTX660 GPU 驱动程序下载-更新佳能软件(显卡)...
  16. 深拷⻉浅拷⻉的区别?如何实现一个深拷贝?
  17. 伯恩光学赴港:背靠苹果、小米,能掀起多大资本浪花?
  18. 前端知识合集【重中之重】,我只看这一篇!
  19. 人工智能-一种现代的方法-chapter3-通过搜索进行问题求解
  20. Garrett Motion将在Auto Shanghai 2021上展示用于混合动力汽车和燃料电池汽车的下一代电动助力技术

热门文章

  1. JS 异步发展流程(回调函数=Async/await)
  2. webpack 4x的安装和简单使用
  3. 【微信公众平台开发】之一:入门与BAE3.0下操作
  4. java WebService 异常
  5. 修改placeorder html,数字分发Web服务DDWSPlaceOrder-服务手册-Partner.PDF
  6. java 工作一年_干java工作了快一年,到底会了什么
  7. java直接引用_Java虚拟机 - 符号引用和直接引用理解
  8. 输入5个整形数据_妙招技法:Excel表格数据录入的5个小技巧
  9. xbanner 动画特效设置android,Axure教程:如何实现爱彼迎App首页Banner的切换效果
  10. kubernetes service 原理解析