您的位置:首页 > 运维架构

zookeeper集群搭建与配置

2016-11-03 23:59 288 查看
现在zookeeper相当的火热,基本上分布式开源软件都会使用zookeeper,而且很多开源软件之中会自带zookeeper,但是我们当然希望这些软件都使用一套zookeeper来进行管理,所有我们需要搭建自己的zookeeper群。

这里我搭建zookeeper集群主要供hadoop与kafka集群使用

下面就开始教程,基本上与网上的其他教程差不多

第一步 准备工作

准备机器,我准备搭载一个三个节点的zookeeper,使用三台虚拟pc来搭载,安装虚拟机后注意要修改 hosts 文件,将三台节点的 host都要填入进去。(修改hosts都快成为了使用开源软件的必备第一步,确实很重要)

下载zookeeper 我下载的是,3.4.8版本的

下载地址

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

解压文件

第二步 修改配置文件

修改zookeeper的配置文件,在zookeeper的

Conf目录下

cp zoo_sample.cfg  zoo.cfg
vim zoo.cfg


主要修改的内容有两部分:dataDir、server.*

dataDir主要是存放zookeeper的数据

server.*放置server的ip与端口

#我的配置如下,注意要删掉此段中文
dataDir=/home/lee/tmp/zookeeper
server.1=hadooplee1:2888:3888
server.2=hadooplee2:2888:3888
server.3=hadooplee3:2888:3888


第三步 创建文件,准备运行

创建 dataDir目录,在该目录下新建一个myid的文件,写入serverList的序号

eg:

mkdir /home/lee/tmp
mkdir /home/lee/tmp/zookeeper

#myid文件
1


运行zookeeper

//启动zookeeper,三台机器都要
./bin/zkServer.sh start
//查看zookeeper集群运行状态,每台都看一下
./bin/zkServer.sh status


如果发现运行失败,使用以下代码可以查看zookeeper的启动运行日志

zkServer.sh start-foregroud


常见问题

问题1:

编辑zoo.cfg配置文件时,指定了log的输出目录,但是却未创建。

解决方案:因此需要按照里面指定的目录进行创建。

mkdir /tmp/zookeeper/log


问题2:

检查配置zoo.cfg配置发现是该节点的主机名写错了;先停止三个节点zookeeper服务,逐一的修改节点上zoo.cfg配置文件,在逐一的启动 ,结果显示正常;

zk的安装搭建过程中, 如果报错, 一定要把status中的错误贴出来, 其它的信息不容易找到答案

问题3:

Caused by: java.lang.IllegalArgumentException: ./zookeeper/myid file is missing

myid文件放错位置或者没有

其他:

可以使用screen来 新建不同的session来进行后台运行,或者将zookeeper加入 rc.local文件,来进行开机运行。

Screen 是linux下的一个中高级技巧,通过screen命令创建的环境下运行的终端命令,其父进程不是sshd登陆回话,而是screen。这样就可以避免了用户退出进程消失的问题,同时又能重新接管回终端继续操作。也就是实现了后台运行

新建
screen –dmS 名
连接
screen –r 名
跳出该screen
Ctrl+A+D
列出所有的screen
screen –list


参考文献: http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息