前几天装了CentOS7、并安装了一些基本的工具,现在我手上有三台机器:分别是master,slave1,slave2。

今天我将搭建zookeeper,使用的版本是zookeeper-3.4.11.tar.gz。zk安装非常简单他有三种搭建方式:一种是单机版,一种是伪分布式,一种是分布式。我这演示的是分布式搭建...

一、下载zk安装包:

  http://zookeeper.apache.org/releases.html

二、安装

1. 将zookeeper-3.4.11.tar.gz上传到安装目录

#在/usr/local/下创建一个zk包
cd /usr/local
mdkir zookeeper #通过rz命令,上传zk,并解压
tar -zxvf zookeeper-3.4.11

2.修改配置文件

# 进入conf目录
cd /usr/local/zookeeper/zookeeper-3.4.11/conf # 复制一份zoo_sample.cfg命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg # 修改zoo.cfg
vim zoo.cfg

这里主要修改三个内容:数据文件夹dataDir、日志文件夹dataLogDir、客户端访问 zookeeper 的端口号clientPort

在文件的末端添加集群机器:server.1、server.2、server.3

注意:dataDir、dataLogDir 的目录必须存在,不然会报错。server.*的配置可以是hostname:2888:3888

3. 在dataDir目录下创建myid文件,然后分别在myid文件中按照zoo.cfg文件的server.A中A的数值,在不同机器上的该文件中填写相应的值。例如server.1 在当前机器的myid中就只写上1就可以了。

#进入dataDir目录
cd #创建myid文件(也可以touch myid,创建一个空的myid文件)
cat > myid #然后把接下来的键盘输入写入文件,直到按Ctrl+D为止

4. 配置环境变量

#修改环境变量
vim /etc/profile #在文件的结尾处添加
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.11
export PATH=$PATH:$ZOOKEEPER_HOME/bin # 让文件立即生效
source /etc/profile

5. 将zk目录,复制到其它几台机器,修改相应的配置项

6. 分别启动三台机器的zk

#进入bin目录
cd /usr/local/zookeeper/zookeeper-3.4.11/bin/ #启动
zkServer.sh start #查看启动状态(会有一个主节点,两个子节点)
zkServer.sh status

三、启动过程中遇到的错误和解决方法

1. 防火墙没有关;(具体操作见我环境部署中的上一篇文章)

2. SELinux没有关;(具体操作见我环境部署中的上一篇文章)

3. zookeeper.out中报错:dataDir 找不到; 检查一下dataDir 目录是否正确;

4. zookeeper.out中报错:“zookeeper address already in use”;端口被占用,检查一下是其他进程占用了配置的端口,还是配置的clientPort和server中的端口有重复;
5. zookeeper.out中报错:Cannot open channel to 2 at election address /192.168.10.120:3888;这应该只是组成集群的120节点未启动,到120启动起来zk即会正常;

6. 应用连接zookeepr报错:Session 0x0 for server 192.168.10.120/192.168.10.120:2181,unexpected error,closing socket connection and attempting reconnect;

                                        先看端口能否telnet通,如果通则使用./zkServer.sh status查看zk是否确实已启动,没启查看zookeeper.out中的报错;
 
ok, zookeeper的集群模式就搭建好了...

在CentOS7中搭建Zookeeper集群的更多相关文章

  1. Docker中搭建zookeeper集群

    1.获取官方镜像 从dockerhub获取官方的zookeeper镜像: docker pull zookeeper 2.了解镜像内容 拉取完镜像后,通过 docker inspect zookeep ...

  2. centos7上搭建zookeeper集群

    1.下载zookeeper http://www.apache.org/dyn/closer.cgi/zookeeper/  可以登录这个网站下载,然后上传到 centos上 修改成自己需要的版本 , ...

  3. 如何搭建Zookeeper集群

     ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的 ...

  4. centos 6.5 搭建zookeeper集群

    为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等)目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费 ...

  5. docker容器中搭建kafka集群环境

    Kafka集群管理.状态保存是通过zookeeper实现,所以先要搭建zookeeper集群 zookeeper集群搭建 一.软件环境: zookeeper集群需要超过半数的的node存活才能对外服务 ...

  6. 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例

    centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ...

  7. 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇

    使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...

  8. docker 搭建zookeeper集群和kafka集群

    docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...

  9. docker-compose搭建zookeeper集群

    搭建zookeeper集群 创建docker-compose.yml文件 ``` version: '3.1' services: zoo1: image: zookeeper restart: al ...

随机推荐

  1. yii2.0里的redirect跳转方法

    在yii2框架里难免会出现跨控制器跳转,调用方法等,这就用到了redirect了, 带参数的 $control=Yii::app()->runController('site/show/id/2 ...

  2. 第一周 day1 Python学习笔记

    为什么要学习Python? Python擅长的领域 1. python2.x中不支持中文编码,默认编码格式为ASCII码,而python3.x中支持Unicode编码,支持中文,变量名可以为中文,如: ...

  3. Java中多线程重复启动

    在面试时候经常被问到多线程的相关问题: 今天在测试的时候发现下面的代码会抛出异常: java.lang.IllegalThreadStateException public static void m ...

  4. 理解JavaScript中的去抖函数

    何为去抖函数?在学习JavaScript去抖函数之前我们需要先弄明白这个概念.很多人都会把去抖跟节流两个概念弄混,但是这两个概念其实是很好理解的. 去抖函数(Debounce Function),是一 ...

  5. JQuery获取和设置Select选项的常用方法总结

    1.获取select 选中的 text:  $("#cusChildTypeId").find("option:selected").text();  $(&q ...

  6. luogu P4231 三步必杀

    嘟嘟嘟 这道题就是区间加一个等差数列,然后最后求每一个数的值. O(n)做法:二阶差分. 其实就是差分两遍.举个例子 0 0 0 0 0 0 0,变成了 0 2 4 6 8 0 0.第一遍差分:0 2 ...

  7. javascript中的回调函数(callback) (转载)

    代码如下: app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(er ...

  8. 一. Selenium介绍

    1. 什么是Selenium 是web自动化测试工具集,主要包括:IDE.Grid.RC(Selenium1.0).WebDriver(Selenium2.0) 与其他工具的不同: 一般的脚本测试工具 ...

  9. Gradle Goodness: Adding Tasks to a Predefined Group

    In Gradle we can group related tasks using the group property of a task. We provide the name of our ...

  10. linux下安装rar

    1. sudo wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz 2.解压 tar -zxf rarlinux-5.0.1.tar.g ...