当前位置:

zookeeper配置

访客 2024-02-18 847 0

zookeeper安装教程

1.上传zookeeper安装包并解压tar-zxvfapache-zookeeper-3.8.0-bin

2.配置zookeeper环境变量sudovim/etc/profile

#配置zookeeper环境变量

exportZOOKEEPER_HOME=/export/server/apache-zookeeper-3.8.0-bin

exportPATH=$PATH:$ZOOKEEPER/bin

使配置生效source/etc/profile

3.修改/创建zookeeper配置文件

1)在zookeeper目录下新建data目录和logs目录mkdirdatalogs

在data中新建myid文件,在其中填入数字1(对应zoo.cfg文件的server编号)

2)由于conf目录下没有zoo.cfg文件,所以复制zoo_sample.cfg成zoo.cfg:

cpzoo_sample.cfgzoo.cfg

注意一定要删除原有内容后(否则集群会报错myidcouldnotbedetermined),

再添加内容

#指定数据日志目录

dataDir=/export/server/apache-zookeeper-3.8.0-bin/data

dataLogDir=/export/server/apache-zookeeper-3.8.0-bin/logs

#node1对应于在hosts里面配置的主机映射2888是数据同步和消息传递端口,3888是选举端口

server.1=node1:2888:3888

server.2=node2:2888:3888

server.3=node3:2888:3888

server.4=node4:2888:3888

#session的会话时间以ms为单位

tickTime=2000

#服务器启动以后,master和slave通讯的时间

initLimit=10

#master和slave之间的心跳检测时间,检测slave是否存活

syncLimit=5

#客户端访问zk的端口

clientPort=2181

拷贝zookeeper目录到其他节点,并分别更改data/myid的值为2~4:

xsync/export/server/apache-zookeeper-3.8.0-bin

4.启动服务$ZOOKEEPER_HOME/bin/zkServer.shstart

zookeeper负责协调hbase之间的通信,所以需要在每个节点上分别启动zookeeper服务,在bin目录下启动服务:

5.查看zookeeper服务状态$ZOOKEEPER_HOME/bin/zkServer.shstatus

当出现Mode:follower/leader时,集群才算真正配置成功,如果没出现该内容,且已经关闭防火墙,检查配置文件无误;)需要说明的是,只有当你启动集群后才会查看到Mode:follower/leader的出现)

如果有以下的问题,首先应该是配置文件zoo.cfg中的主机名写错了或者myid文件的映射值写错了;再则是防火墙的问题(当然是在集群启动的前提下考虑),则需要开启端口(或者直接关闭防火墙)

开启端口的方法:

#首先停掉服务

zkServer.shstop

#改用zkServer.shstart-foreground方式启动,可以看到具体错误日志

zkServer.shstart-foreground

#接着配置防火墙

systemctlstartfirewalld

#开放端口2888/3888(add为添加,remove为移除)

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

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

#并重载入添加的端口:

firewall-cmd--reload

#再次查询端口开放情况,确定2888和3888开放

firewall-cmd--zone=public--list-ports

6.关闭服务命令:$ZOOKEEPER_HOME/bin/zkServer.shstop

7.zookeeper集群启停及状态查看脚本

#!/bin/bash

#需要先修zookeeperbin目录下的zxEnv.sh文件,在前面添加JAVA_HOME=

#/export/server/jdk1.8.0_131

case$1in

"start")

echo----------zookeeper$i启动------------

{

foriinnode1node2node3node4

do

`ssh$i"/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.shstart>&/dev/null"`

done

}

{

foriinnode1node2node3node4

do

echo----------zookeeper$i状态------------

ssh$i"/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.shstatus|sed-n'/Mode/p'||zookeeper未启动"

done

};;

"stop")

echo----------zookeeper$i停止------------

{

foriinnode1node2node3node4

do

ssh$i"/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.shstop>&/dev/null&&echo'zookeeper$i关闭成功'"

done

};;

"status"){

foriinnode1node2node3node4

do

echo----------zookeeper$i状态------------

ssh$i"/export/server/apache-zookeeper-3.8.0-bin/bin/zkServer.shstatus|sed-n'/Mode/p'||zookeeper未启动"

done

};;

esac

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~