Red Hat Linux 6.5 安装Zookeeper集群

一,安装环境:

操作系统:Red Hat Linux 6.5

JDK版本:1.8.0_151 //需先安装JDK

Zookeeper版本:3.4.12

设置每个节点的hosts文件。

# vi /etc/hosts
//添加以下内容
10.11.111.42  mrzwk-5
10.11.111.43  mrzwk-6
10.11.111.45  mrzwk-8

重启生效。(reboot)

二、安装zookeeper集群

# cd /home/weihu
# mkdir kafka
//解压
# tar -zxvf zookeeper-3.4.12.tar.gz -C kafka     
#cd kafka
//创建链接
# ln -s zookeeper-3.4.12 zookeeper       
# cd zookeeper
//创建日志目录
# mkdir -pv logs
//创建数据目录
# mkdir -pv data

配置zookeeper环境变量

# vi /etc/profile
export PATH=/home/weihu/kafka/zookeeper/bin:$PATH

保存退出
//初始化
# source /etc/profile

配置zookeeper集群:

集群节点数量要为奇数,且至少有3个节点,因为ZooKeeper集群是以宕机个数过半才会让整个集群宕机的。搭建ZooKeeper集群时,一定要先停止所有已经启动的节点。

修改配置文件:

# cd /home/weihu/kafka/zookeeper/conf
# cp zoo_sample.cfg zoo.cfg
#vi 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=/home/weihu/kafka/zookeeper/data
dataLogDir=/home/weihu/kafka/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
server.1=10.11.111.42:2888:3888
server.2=10.11.111.43:2888:3888
server.3=10.11.111.45:2888:3888

# the maximum number of client connections.
# increase this if you need to handle more clients
maxClientCnxns=60

创建myid文件:

在mrzwk-5上执行:# echo 1 > /home/weihu/kafka/zookeeper/data/myid
在mrzwk-6上执行:# echo 2 > /home/weihu/kafka/zookeeper/data/myid
在mrzwk-8上执行:# echo 3 > /home/weihu/kafka/zookeeper/data/myid

备注:myid文件中只有一行内容,且内容为该节点对应的server.id中的id编号

启动zookeeper集群:

# cd /home/weihu/kafka/zookeeper/bin
# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看zookeeper进程:

# jps  //显示当前所有Java进程的PID
6470 Jps
6316 QuorumPeerMain
查看zookeeper集群状态:
# zkServer.sh status

上述步骤分别在三台服务器上执行,

在mrzwk-5上:
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower

在mrzwk-6上:

 
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower

在mrzwk-8上:

# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: leader

备注:正常情况下应该是1个leader节点,2个follower节点

若zkServer.sh status命令执行显示-bash: zkServer.sh: command not found

命令改为./zkServer.sh status可正常执行

连接zookeeper集群:

# zkCli.sh -server mrzwk-5:2181,mrzwk-6:2181,mrzwk-8:2181

成功连接后,可以看到如下输出:

Welcome to ZooKeeper!
2018-05-04 10:39:27,990 [myid:] - INFO  [main-SendThread(mrzwk-5:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server mrzwk-5/10.11.111.42:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-05-04 10:39:28,071 [myid:] - INFO  [main-SendThread(mrzwk-5:2181):ClientCnxn$SendThread@878] - Socket connection established to mrzwk-5/10.11.111.42:2181, initiating session
[zk: mrzwk-5:2181,mrzwk-6:2181,mrzwk-8:2181(CONNECTING) 0] 2018-05-04 10:39:28,116 [myid:] - INFO  [main-SendThread(mrzwk-5:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server mrzwk-5/10.11.111.42:2181, sessionid = 0x30000a829550000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: mrzwk-5:2181,mrzwk-6:2181,mrzwk-8:2181(CONNECTED) 0]

三,可能遇到的报错

1,报错:Zookeeper启动成功,zkServer.sh status 报错
# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/weihu/kafka/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
原因:
  1. zoo.cfg文件配置出错:dataLogDir指定的目录未被创建
  2. myid文件中的整数格式不对,或者与zoo.cfg中的server整数不对应
  3. 防火墙相关端口是否开启(2181,2888,3888)
  4. ZooKeeper集群IP不能正确映射
    单机模式正常,且单机模式下能互相访问,切换至分布式Zookeeper启动成功,zkServer.sh status 报错。
    zookeeper.out日志输出如下:
    [myid:1] - ERROR [centos_1/220.250.64.225:3888:QuorumCnxManager$Listener@562] - As I 'm leaving the listener thread, I won' t be able to participate in leader election any longer: centos_1/220.250.64.225:38882016-11-03 19:33:43,795 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@400] - Cannot open channel to 2 at election address centos_2/220.250.64.225:3888java.net.SocketTimeoutException: connect timed out
         at java.net.PlainSocketImpl.socketConnect(Native Method)

    解决:更改配置文件zoo.cfg
    在mrzwk-5上:
  5. server.1=0.0.0.0:2888:3888
    server.2=10.11.111.43:2888:3888
    server.3=10.11.111.45:2888:3888
    在mrzwk-6上:
    server.1=10.11.111.42:2888:3888
    server.2=0.0.0.0:2888:3888
    server.3=10.11.111.45:2888:3888
    在mrzwk-8上:
    server.1=10.11.111.42:2888:3888
    server.2=10.11.111.43:2888:3888
    server.3=0.0.0.0:2888:3888

保存配置文件,并重启服务。

### 回答1: 要安装Zookeeper集群,需要按照以下步骤进行操作: 1. 下载Zookeeper软件包并解压缩到每个节点的相同目录下。 2. 在每个节点上创建一个zookeeper目录,并在其中创建一个data目录和一个logs目录。 3. 在每个节点的zookeeper目录中创建一个配置文件zoo.cfg,并在其中指定集群中所有节点的IP地址和端口号。 4. 在每个节点的data目录中创建一个myid文件,并在其中指定该节点的ID号,ID号必须是唯一的。 5. 启动每个节点的Zookeeper服务,并检查日志文件以确保服务已成功启动。 6. 在任意一个节点上使用Zookeeper客户端工具连接到集群,并测试集群的功能。 以上是安装Zookeeper集群的基本步骤,具体操作可以参考Zookeeper官方文档或相关教程。 ### 回答2: Zookeeper是一个分布式应用程序的协调服务。在分布式系统中,不同的进程需要协同工作才能完成复杂的任务。Zookeeper可以帮助这些进程协同工作,提高系统的可靠性和可扩展性。 要安装Zookeeper集群,首先需要下载Zookeeper。可以从Zookeeper官方网站上下载最新版本的Zookeeper安装过程需要确保所有节点都有相同的Zookeeper版本。 接下来,需要配置每个Zookeeper节点的Zoo.cfg文件。可以使用一个编辑器打开这个文件,编辑Zookeeper节点的IP地址和端口号以及其他配置选项。确保所有配置都符合要求。 然后,需要为每个节点创建一个myid文件。myid文件包含一个数字,范围为1到255。每个节点必须有一个唯一的数字作为标识。可以在每个节点上创建一个myid文件,将其数字设置为相应节点的ID号。 接下来,启动Zookeeper。在每个节点上,使用命令行窗口进入Zookeeper安装目录,并使用以下命令启动Zookeeper: bin/zkServer.sh start 在每个节点上都运行此命令,Zookeeper集群将开始运行。 最后,可以测试Zookeeper集群是否正常工作。可以使用Zookeeper自带的客户端工具来验证集群的状态。使用以下命令连接到集群: bin/zkCli.sh -server host:port 在这个命令中,host是Zookeeper节点的IP地址,port是对应节点的端口号。连接成功后,可以使用命令测试Zookeeper。例如,可以使用ls命令查看Zookeeper中存在的所有节点。 使用这些步骤安装Zookeeper集群可以让你高效地使用ZookeeperZookeeper可以帮助你在分布式系统中管理多个节点,提高系统的可靠性和可扩展性。 ### 回答3: Zookeeper是一个开源的分布式应用程序协调服务,可以为大型的分布式系统提供一致性的配置管理、状态同步等功能。在一个分布式系统中,为了保证数据一致性和可靠性,需要使用Zookeeper集群。以下是安装Zookeeper集群的步骤。 1、安装Java环境 在Linux系统上,Zookeeper是用Java编写的,所以需要首先安装Java环境。可以使用以下命令查看系统是否已经安装了Java: java -version 如果系统已经安装了Java,则会显示当前系统的Java版本信息。如果没有安装Java环境,则需要先安装Java。 2、下载Zookeeper 可以在Zookeeper的官方网站上下载最新的稳定版本,下载完成后将其解压缩到指定的目录下: tar -zxvf zookeeper-3.x.x.tar.gz 3、配置Zookeeper (1)复制配置文件 将Zookeeper目录下的conf目录中的配置文件zoo_sample.cfg改名为zoo.cfg,然后将其复制到dataDir目录下(如果没有dataDir目录则需要手动创建一个)。 cp ./conf/zoo_sample.cfg ./dataDir/zoo.cfg (2)编辑配置文件 编辑zoo.cfg文件,需要注意以下几点: - 修改dataDir配置项,将其指定到一个可用的目录下,用来存储Zookeeper节点和数据。 - 配置server配置项,指定集群的机器节点信息,具体格式为server.n=[hostname]:[peerPort]:[leaderPort],其中n为节点编号,hostname为节点的IP地址或主机名,peerPort为节点之间通信的端口,leaderPort为选举leader的端口。 - 其他配置项使用默认值即可。 4、启动Zookeeper集群 在每个节点上,使用以下命令启动Zookeeper: bin/zkServer.sh start 在第一个节点上启动Zookeeper集群时,需要使用“-bootstrap”选项,例如: bin/zkServer.sh start-foreground -c conf/zoo.cfg -bootstrap 启动Zookeeper后,可以使用“bin/zkCli.sh”命令连接到任何一个节点,检查集群节点的状态。 以上是安装Zookeeper集群的基本步骤,安装过程中还需注意配置防火墙和检查端口开放情况,确保集群可以正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值