CentOS安装Zookeeper 3.6.2

摘要:
ZooKeeper是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实现它们时,都要做大量工作来修复不可避免的错误和竞争条件。因为很难实现这些服务,所以应用程序通常在开始时跳过它们,这使得它们在发生更改时很容易受到攻击,很难管理。即使部署正确,这些服务的不同实现也可能导致复杂的管理。

什么是ZooKeeper?


ZooKeeper是用于维护配置信息,命名,提供分布式同步以及提供组服务的集中式服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行很多工作来修复不可避免的错误和竞争条件。由于难以实现这类服务,因此应用程序最初通常会跳过它们,这会使它们在存在更改的情况下变得脆弱并且难以管理。即使部署正确,这些服务的不同实现也会导致管理复杂。

Zookeeper环境版本

CentOSJDKzookeeper
7.81.8.2023.6.2

下载JDK1.8并且安装

[root@Mike-Node1 ~]# wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
[root@Mike-Node1 ~]# tar zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/ && rm -rf jdk-8u202-linux-x64.tar.gz
[root@Mike-Node1 ~]# mv /usr/local/jdk1.8.0_202/ /usr/local/jdk/[root@Mike-Node1 ~]# vim /etc/profile

#set java environment
JAVA_HOME=/usr/local/jdk
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH


[root@Mike-Node1 ~]# source /etc/profile
[root@Mike-Node1 ~]# 
[root@Mike-Node1 ~]# java -version
java version "1.8.0_202"Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
[root@Mike-Node1 ~]# 

下载zookeeper安装

[root@Mike-Node1 ~]# wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
[root@Mike-Node1 ~]# tar zxvf apache-zookeeper-3.6.2-bin.tar.gz -C /usr/local/[root@Mike-Node1 ~]# rm -rf apache-zookeeper-3.6.2-bin.tar.gz && mv /usr/local/apache-zookeeper-3.6.2-bin/ /usr/local/zookeeper
[root@Mike-Node1 ~]# cd /usr/local/zookeeper/[root@Mike-Node1 /usr/local/zookeeper]# cp conf/zoo_sample.cfg conf/zoo.cfg
[root@Mike-Node1 /usr/local/zookeeper]# mkdirlogs data
[root@Mike-Node1 /usr/local/zookeeper]# cd conf/[root@Mike-Node1 /usr/local/zookeeper/conf]# vim zoo.cfg 

tickTime=2000initLimit=10syncLimit=5dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
[root@Mike-Node1 /usr/local/zookeeper/conf]#

启动Zookeeper

[root@Mike-Node1 /usr/local/zookeeper/conf]# vim /etc/systemd/system/zookeeper.service

[Unit]
Description=zookeeper.service
After=network.target
[Service]
Type=forking
Environment=ZOO_LOG_DIR=/usr/local/zookeeper/logs/Environment=PATH=/usr/local/jdk/bin:/usr/local/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
ExecStart=/usr/local/zookeeper/bin/zkServer.shstart
ExecStop=/usr/local/zookeeper/bin/zkServer.shstop
ExecReload=/usr/local/zookeeper/bin/zkServer.shrestart
PIDFile=/usr/local/zookeeper/data/zookeeper_server.pid
User=root
[Install]
WantedBy=multi-user.target

[root@Mike-Node1 /usr/local/zookeeper/conf]# 
[root@Mike-Node1 /usr/local/zookeeper/conf]# systemctl daemon-reload
[root@Mike-Node1 /usr/local/zookeeper/conf]# systemctl start zookeeper
[root@Mike-Node1 /usr/local/zookeeper/conf]# systemctl enable zookeeper
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /etc/systemd/system/zookeeper.service.
[root@Mike-Node1 /usr/local/zookeeper/conf]# 
[root@Mike-Node1 /usr/local/zookeeper/conf]# ss -ntl
State       Recv-Q Send-Q                                           Local Address:Port                                                          Peer Address:Port              
LISTEN      0      128                                                          *:22                                                                       *:*LISTEN      0      100                                                  127.0.0.1:25                                                                       *:*LISTEN      0      50                                                        [::]:38819                                                                 [::]:*LISTEN      0      50                                                        [::]:2181                                                                  [::]:*LISTEN      0      50                                                        [::]:8080                                                                  [::]:*LISTEN      0      100                                                      [::1]:25                                                                    [::]:*[root@Mike-Node1 /usr/local/zookeeper/conf]# 

你会突然发现多了端口,旧版本只有一个2181端口,现在突然多出 8080端口和38819端口

默认访问8080端口地址:

http://127.0.0.1:8080/commands

这是因为 zookeeper3.5 版本以上的新特性:

he AdminServer
New in 3.5.0: The AdminServer is an embedded Jetty server that provides an HTTP interface to the four letter word commands. By default, the server is started on port 8080, and commands are issued by going to the URL "/commands/[command name]", e.g., http://localhost:8080/commands/stat. The command response is returned as JSON. Unlike the original protocol, commands are not restricted to four-letter names, and commands can have multiple names; for instance, "stmk" can also be referred to as "set_trace_mask". To view a list of all available commands, point a browser to the URL /commands (e.g., http://localhost:8080/commands). See the AdminServer configuration options for how to change the port and URLs.
这是Zookeeper AdminServer,默认使用8080端口,它的配置属性如下:

New in 3.5.0: The following options are used to configure the AdminServer.

admin.enableServer : (Java system property: zookeeper.admin.enableServer) Set to "false"to disable the AdminServer. By default the AdminServer is enabled.

admin.serverAddress : (Java system property: zookeeper.admin.serverAddress) The address the embedded Jetty server listens on. Defaults to 0.0.0.0.

admin.serverPort : (Java system property: zookeeper.admin.serverPort) The port the embedded Jetty server listens on. Defaults to 8080.

admin.idleTimeout : (Java system property: zookeeper.admin.idleTimeout) Set the maximum idle time in milliseconds that a connection can wait before sending or receiving data. Defaults to 30000ms.

admin.commandURL : (Java system property: zookeeper.admin.commandURL) The URL for listing and issuing commands relative to the root URL. Defaults to "/commands".

如果服务器上有8080端口可能还会报错,启动不了~

那么需要在配置文件中修改 AdminServer 默认8080端口,如下

[root@Mike-Node1 ~]# vim /usr/local/zookeeper/conf/zoo.cfg

admin.serverPort=8989
[root@Mike-Node1 ~]# systemctl restart zookeeper
[root@Mike-Node1 ~]# ss -ntl
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      128                                     *:22                                                  *:*LISTEN     0      100                             127.0.0.1:25                                                  *:*LISTEN     0      50                                   [::]:2181                                             [::]:*LISTEN     0      50                                   [::]:36046                                            [::]:*LISTEN     0      100                                 [::1]:25                                               [::]:*LISTEN     0      50                                   [::]:8989                                             [::]:*[root@Mike-Node1 ~]# 

开放防火墙

[root@Mike-node1 ~]# firewall-cmd --zone=public --add-port=2181/tcp --permanent
[root@Mike-node1 ~]# firewall-cmd --zone=public --add-port=8989/tcp --permanent
[root@Mike-node1 ~]# firewall-cmd –reload

或者关闭防火墙

[root@Mike-node1 ~]# systemctl stop firewalld
[root@Mike-node1 ~]# systemctl stop iptables

如果对防火墙有疑惑可以看我之前的博客 https://www.cnblogs.com/mike666/p/13932326.html

服务操作命令

systemctl start zookeeper     #启动服务

systemctl stop zookeeper      #停止服务

systemctl restart zookeeper   #重新启动服务

systemctl status zookeeper   #查看服务当前状态

systemctl enable zookeeper   #设置开机自启动

systemctl disable zookeeper   #停止开机自启动

本文分享完毕,感谢支持点赞~~

免责声明:文章转载自《CentOS安装Zookeeper 3.6.2》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java中的访问控制权限winform 父窗体与子窗体数据传递下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS 7 配置本地yum源、在线yum源

  yum概述          yum是Yellow dog Updater, Modified 的简称,使用yum安装软件包需要为系统配置yum源(yum repository),可以使用http站点、ftp站点或本地镜像文件作为yum源,允许为系统配置多个yum源。   yum通过分析rpm软件包header信息自动解决软件包安装、升级或卸载过程中软...

CentOS 7 之几个新特性(转)

上篇我们讲到默认没有ifconfig是centos7的新特性,所以我特意上网搜索了一下其新特性,找到一篇文章,现转过来。 centos最小好化安装没有ifconfig命令 刚安装了centos7.0,最小化安装,发现没有ifconfig命令,虚拟机里面的网卡显示ens32,这是centos7.0的特点,要使用ifconfig命令,在/etc/sysconf...

CentOS 7防火墙快速开放端口配置方法

一、CentOS 7快速开放端口: CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口: 开启端口 [root@centos7 ~]# firewall-cmd --zone=public -...

阿里云服务器ECS(CentOS)部署项目最详细流程(安装tomcat、部署项目、取消访问时自带项目名、购买域名、备案、域名访问项目)(图文介绍)

自己操作的时候出了很多问题,查了挺多资料最后解决了,记录一下 1、首先去docker hub上搜索tomcat https://hub.docker.com/_/tomcat 2、找一个自己喜欢的版本,或者直接下载默认版本 docker pull tomcat 如果没有配置过镜像加速 针对Docker客户端版本大于 1.10.0的用户 您可以通过修改d...

CentOS 7 安装ActiveMQ

CentOS 7 安装ActiveMQ ActiveMQ需要JDK环境, 所以安装ActiveMQ首先需要安装JDK. 安装jdk环境 下载 jdk (Linux版本的压缩包) 使用ftp上传到安装目录(如果没有该目录则创建) 创建安装目录 mkdir /usr/local/java 解压jdk安装包 tar -zxvf jdk-8u11-linux-x...

caffe 安装

安装caffe 拉取镜像 nvidia/cuda:9.0-cudnn7-devel-centos7 1,换源 安装https://blog.csdn.net/tuomen5867/article/details/94406903 yum install make 必要安装 更换 yum 源和 epel 源: cp /etc/yum.r...