当前位置: 首页 > article >正文

Zookeeper的安装与使用

一、简介

1.1、概念

ZooKeeper 是一个开源的分布式协调服务,主要用于解决分布式系统中的数据一致性问题。它提供了一种可靠的机制来管理和协调分布式系统的各个节点。ZooKeeper 的设计目标是简化分布式应用的开发,提供简单易用的接口和高性能、高稳定性的系统。

通俗的理解:
1、zk其实是一个小型的文件存储系统,可以存放少量的数据,这些数据不是什么正儿八经的数据,都是一些关于服务器的小数据。
2、它可以感知服务器是否上线,是否掉线。
3、我们为什么要学习这个东西?我们可以使用zk搭建集群环境。
   比如:hadoop的高可用(HA),namenode 存在单节点故障。我们可以启用两个namenode,一个挂掉了,另一个自动启动。另一个namenode如何知道第一个namenode挂掉了?zk就可以做到。
   包括:HBase也会使用到。
   Java架构中: zk进行分布式锁等操作。

1.2、特点

1. 是一个分布式集群,一个领导者(leader),多个跟随者(follower).
2. 集群中只要有半数以上的节点存活,Zookeeper集群就能正常服务。
3. 全局数据一致性:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。
4. 更新请求按顺序进行:来自同一个client的更新请求按其发送顺序依次执行
5. 数据更新的原子性:一次数据的更新要么成功,要么失败
6. 数据的实时性:在一定时间范围内,client能读到最新数据。

二、安装

关闭三台服务器的防火墙

2.1、上传解压重命名

上传:将zookeeper的安装包上传到  /opt/modules   下

解压:

cd /opt/modules

tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/installs/

重命名:

cd /opt/installs

mv zookeeper-3.4.10/ zookeeper

2.2、修改配置文件

进入到/opt/installs/zookeeper/conf文件夹下,重命名zoo_sample.cfg

cd /opt/installs/zookeeper/conf

mv  zoo_sample.cfg  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=/opt/installs/zookeeper/zkData

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

## Metrics Providers

#

# https://prometheus.io Metrics Exporter

#metricsProvider.httpPort=7000

#metricsProvider.exportJvmInfo=true

server.1=bigdata01:2888:3888

server.2=bigdata02:2888:3888

server.3=bigdata03:2888:3888

记得在zookeeper中创建zkData文件夹,以及myid文件

cd /opt/installs/zookeeper

mkdir zkData

touch myid

echo "1" > myid

配置环境变量:

export ZOOKEEPER_HOME=/opt/installs/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

刷新环境变量

source /etc/profile

第二台和第三台服务器也是这样配置,不过第二台的   myid   里面是  2  ;第三台是 3  。

三、使用

3.1、启动zookeeper

要在每一台机器上都启动

zkServer.sh start

一个启动脚本,在/usr/local/bin 下面,创建zk.sh

#!/bin/bash

# 获取参数
COMMAND=$1
if [ ! $COMMAND ]; then
    echo "please input your option in [start | stop | status]"
    exit -1
fi
if [ $COMMAND != "start" -a $COMMAND != "stop" -a $COMMAND != "status" ]; then
    echo "please input your option in [start | stop | status]"
    exit -1
fi

# 所有的服务器
HOSTS=( bigdata01 bigdata02 bigdata03 )
for HOST in ${HOSTS[*]}
do
    ssh -T $HOST << TERMINATOR
    echo "---------- $HOST ----------"
    zkServer.sh $COMMAND 2> /dev/null | grep -ivh SSL
    exit
TERMINATOR
done

添加权限

chmod u+x zk.sh

zk.sh start  #启动集群
zk.sh stop  #关闭集群
zk.sh status  #查看状态

3.2、连接zkServer

zkCli.sh  直接回车,连接的是本机的节点

3.3、create  创建新的节点

create /bigdata 

3.4、set  在节点上设置数据

set /bigdata01 "HelloWorld"

3.5、ls 查看某个路径下的子节点

ls  /  #  /  是根目录

ls /zookeeper

3.6、get  查看某个节点上的数据

get /bigdata01

3.7、delete 删除节点

delete /bigdata

如果节点下有子节点,则 delete  是删不掉的,需要使用 deleteall  

deleteall /bigdata


http://www.kler.cn/a/394484.html

相关文章:

  • Linux文件目录 --- 移动和改名命令MV、强制移动、试探性移动过、按时间移动
  • 使用 acme.sh 申请域名 SSL/TLS 证书完整指南
  • WebAPI编程(第一天,第二天)
  • Java代码覆盖率super-jacoco
  • python round四舍五入和decimal库精确四舍五入
  • java开发入门学习五-流程控制
  • 【XML协议】轻松掌握使用C++ XML解析库——pugixml
  • 电脑技巧:推荐一款开源免费的多显示器管理工具Dual Monitor Tools
  • 【k8s】k8s集群中拉取需要登录的私有镜像库
  • Z分位数速查表
  • 4.1 Android NDK 简介
  • 开源项目低代码表单设计器FcDesigner扩展自定义的容器组件.例如col
  • 电动工具中的扭矩调节系统:原理与优化
  • [每日一氵] PySpark 的 log GC 部分是什么意思
  • 控制中心应该如何选择控制台
  • LeetCode题解:5.最长回文子串【Python题解超详细,中心拓展、动态规划、暴力解法】
  • WPF Prism中的区域(Region)管理
  • 腾讯云双11最强攻略:如何选购优惠产品,薅最划算的羊毛
  • ssm117网络教学平台的设计与实现+vue(论文+源码)_kaic
  • 安卓aab包的安装教程,附带adb环境的配置
  • 电脑局域网内让其他电脑通过IP访问配置
  • ssh远程连接和nfs共享文件系统
  • 不安全 Rust
  • Linux 抓包工具 --- tcpdump
  • 安全见闻六:通讯协议安全问题剖析
  • Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)